【问题标题】:Amazon S3 upload works with one credentials but not otherAmazon S3 上传适用于一种凭证,但不适用于其他凭证
【发布时间】:2018-03-15 11:24:16
【问题描述】:

我在两个不同的帐户下有两个 S3 存储桶。两个存储桶的权限和 CORS 设置相同。 两个桶的区域如下(第一个工作)

  1. 地区:亚太地区(新加坡)(ap-southeast-1) 作品
  2. 地区:美国东部(俄亥俄州)(us-east-2) 不起作用

我使用 Node.js 创建了上传脚本并提供了以下区域和以下内容

Key : __XXXX__
secret: __XXXXX____,
bucket: _____XXXX__
'x-amz-acl': 'public-read',
ACL: 'public-read'

首先,代码可以正常工作,上传的文件也可以公开访问。但是对于第二个帐户(区域:us-east-2),脚本成功运行并返回 URL,但是当我查看存储桶时没有上传并且 url 说权限被拒绝,这意味着资源不可用。奇怪的是

  1. bucket中没有上传文件,为什么会返回url?
  2. 为什么相同的代码不适用于其他帐户,

我也尝试过 AWS 文档,但这似乎不是为像我这样的人编写的。非常感谢您的帮助。

【问题讨论】:

  • AWS 不会返回上传对象的 URL,因此您的代码或您正在使用的库正在执行此操作(可能不正确)。您提到了两个 AWS 账户 - 您使用的凭证是否对您上传到的两个 AWS 账户都有效,它们是否具有正确的 S3 权限集?
  • “url 表示权限被拒绝,这意味着资源不可用” 请不要改写或总结错误消息。显示准确错误。
  • 此外,新加坡比俄亥俄州更古老,因此新加坡可以使用 Signature V2 或 V4 处理代码,而俄亥俄州仅支持 Sig V4。在俄亥俄州工作的代码在新加坡也能工作,但相反的不一定是正确的。没有看到您的代码,我们不能说这是否是一个因素。

标签: amazon-web-services amazon-s3


【解决方案1】:

脚本运行成功并返回 URL,但是当我查看存储桶时没有上传

如果您真的在存储桶中看不到任何资源,则说明上传确实失败(我看到太多脚本只是忽略了任何错误响应)或者上传执行到与您预期不同的位置。愿意分享脚本吗?

并且 url 说权限被拒绝,这意味着资源不可用

不幸的是,这是你自己发现的。如果对象在存储桶中,它具有公共访问权限,正确的 cors 设置,那么可能 url 不正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2018-01-07
    • 2017-07-04
    • 2021-12-16
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多