Rest 使用“邮递员”获取aws bucket内容列表;获取Bucket(版本2)";雷斯塔皮

Rest 使用“邮递员”获取aws bucket内容列表;获取Bucket(版本2)";雷斯塔皮,rest,amazon-web-services,amazon-s3,Rest,Amazon Web Services,Amazon S3,我正在使用邮递员发送AWS S3 RestAPI“GetBucket(Version2)”以获取Bucket列表 bucket的名称是“test-bucket-1.ahadomain.com”(ahadomain.com是我在aws中命名bucket时使用的一个虚拟的不存在的域)。我使用的用户凭据具有进行S3调用的所有权限。我正在跟踪第页上的信息- 我正在使用端点: 我正在发送以下标题:内容类型、主机、X-Amz-Content-Sha256、X-Amz-Date、授权 我需要添加“列表类型”作

我正在使用邮递员发送AWS S3 RestAPI“GetBucket(Version2)”以获取Bucket列表

bucket的名称是“test-bucket-1.ahadomain.com”(ahadomain.com是我在aws中命名bucket时使用的一个虚拟的不存在的域)。我使用的用户凭据具有进行S3调用的所有权限。我正在跟踪第页上的信息-

我正在使用端点: 我正在发送以下标题:内容类型、主机、X-Amz-Content-Sha256、X-Amz-Date、授权

我需要添加“列表类型”作为查询参数还是作为标题?如果作为查询参数,如何在url中声明它。

我得到以下响应,其中不包含内容列表,只包含有关bucket本身的信息:

<?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>

6893100EA2B48696E8CCC3AA17414F4325CF59B5744744AD9DE0BCB0D139590C9
艾哈迈德斯梅尔
test-bucket-1.ahadomain.com
2017-09-06T06:36:15.000Z
任何帮助都将不胜感激

谢谢,,
Ahmed.

您可以执行以下操作:

  • 设置要获取的方法
  • 在URL中:
    注意:如果存储桶的区域不在us-east-1中,请更改s3.amazonaws.com以更正该区域的s3端点
  • 在授权选项卡中,设置以下内容:
    A.类型:AWS签名
    BAccessKey:
    C秘钥:
    DAWS地区:美国东部1号
    注意:如果这不是存储桶的区域,请更改此选项
    E服务名称:s3
    F选中“将助手数据保存到请求”
  • 转到“标题”选项卡,删除所有条目(如果有)
  • 然后单击“发送”按钮

  • 选择的答案绝对有效! 多谢各位

    Tool:  Postman
    function:  Get
    Address:  https://s3.us-west-1.amazonaws.com/XXXXXXXX/?list-type=2
    Region:  I am on us-west-1, **this is most common mistake people miss**. 
    
    看起来像下面,得到一个200

    GET/XXXXXXXX/?列表类型=2 HTTP/1.1 主持人:s3.us-west-1.amazonaws.com 授权:AWS4-HMAC-SHA256凭证=XXXXXXXXXXXXXXXXXX/00000000/us-west-1/s3/AWS4_请求,签名头=主机;x-amz-content-sha256;x-amz-date,签名=;lkasdfl;kajsdfk;jasd;kfjas;ldkfjas;ldkfja;skjdf;askdjf;lkasdjf


    -方法

    https://test-bucket-1.s3.us-east-1.amazonaws.com
    不正确。这是其他人的桶,它恰好是禁用的桶。。。该服务将您的请求解释为列出存储桶而不是对象的请求。您需要为您的bucket区域使用一个端点:路径中有bucket名称。只是好奇,为什么/如何告诉bucket被禁用?在我的AWS控制台中,bucket“test-bucket-1.ahadomain.com”列在美国西部(北加利福尼亚)地区。在这种情况下,我使用以下端点:仍然获得相同的输出,关于bucket的信息,而不是内容:(对,我告诉您您的端点不正确。您的端点应该是s3-us-west-1.amazonaws.com/test-bucket-1.ahadomain.com?list type=2或左侧的整个bucket名称test-bucket-1.ahadomain.com.s3-us-west-1.amazonaws.com。另一个端点指的是一个被禁用的bucket,简称为“test-bucket-1”这不是你的bucket,是其他人的,并且似乎被禁用。你的不是。当我使用URL-,我会收到消息“连接到…时出错”基本上是URL格式的问题。当我使用URL-,我会收到消息说我应该使用左边有bucket名称的URL(在本评论开头注明)。邮递员不能使用左边有桶名的URL吗?左边有点的桶名在https中不起作用。只有http。我以前试过这种方法,但不起作用。放置“.ahadomain.com”url中的错误。编辑了我的答案。我清除了所有字段,重新输入了所有字段,Rest API调用正在工作。我阅读了关于检查“将帮助程序数据保存到请求”的内容,但无法理解它。你知道这意味着什么或它的好处吗?顺便说一句,谢谢你的帮助。很抱歉我的回复太晚了。我相信这一点“将助手数据保存到请求”是向请求添加身份验证,我认为在通过API向AWS发送请求时需要这样做。