【问题标题】:How i use amazon s3 in python to use REST examples我如何在 python 中使用 amazon s3 来使用 REST 示例
【发布时间】:2013-06-16 23:15:09
【问题描述】:

我正在阅读此链接 http://docs.aws.amazon.com/AmazonS3/2006-03-01/API/RESTBucketGET.html

我想用的例子是这个

The following GET request specifies the delimiter parameter with value "/", and the prefix parameter with value photos/2006/.

响应是

GET /?prefix=photos/2006/&delimiter=/ HTTP/1.1
Host: example-bucket.s3.amazonaws.com
Date: Wed, 01 Mar  2009 12:00:00 GMT
Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE=

返回的响应是

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>example-bucket</Name>
  <Prefix>photos/2006/</Prefix>
  <Marker></Marker>
  <MaxKeys>1000</MaxKeys>
  <Delimiter>/</Delimiter>
  <IsTruncated>false</IsTruncated>

  <CommonPrefixes>
    <Prefix>photos/2006/feb/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>photos/2006/jan/</Prefix>
  </CommonPrefixes>
</ListBucketResult>

我明白了,但我不确定如何使用 boto 在 django/python 中实现它。

还有没有什么办法可以得到JOSN而不是xml。

【问题讨论】:

    标签: python django amazon-s3 boto


    【解决方案1】:

    在 boto 中,您可以创建一个类似的请求,如下所示:

    import boto
    
    s3 = boto.connect_s3()
    bucket = s3.lookup('example-bucket')
    for key in bucket.list(prefix='photos/2006/', delimiter='/'):
        print k.name
    

    boto 所做的是解析来自 S3 的 XML 输出并将其转换为 Python 对象。所以,列出一个桶会返回一堆 Key 对象,每个对象代表 S3 中的一个对象。

    boto 或 S3 中没有任何东西可以自动将数据转换为 JSON,但您当然可以编写一些 Python 将 Key 对象中的信息转换为 JSON。

    【讨论】:

    • 感谢工作。但这也列出了目录。我的意思是如果 2006 文件夹有 5 个文件和 2 个目录。我还列出了这些目录的名称。有什么办法可以让我得到所有dirsfiles
    • 它将在伪层次结构中列出该“级别”的所有内容。但是很容易区分哪些结果是文件,哪些是“目录”,因为目录名称将以分隔符结尾。所以很容易得到结果并将它们分成目录和文件。
    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2021-11-23
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2011-12-31
    • 1970-01-01
    相关资源
    最近更新 更多