我正在使用邮递员发送AWS S3 RestAPI“获取存储桶(版本2)”以获取存储桶列表。使用Postman获取aws存储桶内容 - “获取存储桶(版本2)”RestAPI
桶的名称是“test-bucket-1.ahadomain.com”(ahadomain.com是我在aws中命名桶时使用的虚拟不存在的域)。我正在使用的用户凭证具有完成S3调用的所有权限。我下面页面上的信息 - http://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html
我使用的端点:https://test-bucket-1.s3.us-east-1.amazonaws.com 我发送以下标题:内容类型,主机,X-AMZ-内容SHA256,X-AMZ-日期,授权
我需要添加“list-type”作为查询参数还是作为标题?如果作为查询参数,我该如何在url中声明它。
我得到如下回应,其中不包含内容的列表,关于桶本身只是信息:
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>6893100ea2b48696e8ccc3aa17414f4325cf59b574474ad9de0bcb0d139590c9</ID>
<DisplayName>ahmedsmail</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>test-bucket-1.ahadomain.com</Name>
<CreationDate>2017-09-06T06:36:15.000Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
任何帮助将不胜感激。
谢谢, 艾哈迈德。
'的https://测试桶1.s3.us - 东 - 1.amazonaws.com'是不正确的。这是别人的桶,而且恰好被禁用......服务正在将您的请求解释为请求列出您的存储桶而不是您的对象。您需要为您的存储区域使用其中一个端点:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region以及路径中的存储区名称。 –
只是好奇,为什么/你如何告诉桶被禁用? 在我的AWS控制台中,美国西部(加利福尼亚州)地区列出了“test-bucket-1.ahadomain.com”存储桶。对于这种情况,我正在使用以下端点:https://test-bucket-1.s3-us-west-1.amazonaws.com仍然相同,桶上的信息,而不是内容。 :( –
没错,我告诉你你的端点是不正确的,你的端点应该是s3-us-west-1.amazonaws.com/test-bucket-1.ahadomain.com?list-type=2或者*整个*桶名称左侧,test-bucket-1.ahadomain.com.s3-us-west-1.amazonaws.com。另一个端点是指一个被称为“test-bucket-1”的被禁用的桶,它不是你的桶,它是别人的,它似乎被禁用。你的不是。 –