首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取AWS水桶列表Boto/Boto 3

获取AWS水桶列表Boto/Boto 3
EN

Stack Overflow用户
提问于 2018-03-16 09:38:29
回答 1查看 244关注 0票数 0

我已经开发了一个Tornado,它为我获取AWS S3桶内容,下面是与Boto完美运行的代码片段。然而,这并不适用于不同位置的水桶。

该方法返回由文件名、大小和文件类型组成的列表(Resp)。

希望使用Boto3实现类似的目标。尝试了很多次,但是Boto3方法返回s3桶的所有内容,并带有完整的路径。

代码语言:javascript
复制
def post(self):
    try:
        resp = []
        path = self.get_argument('path')
        bucket_name = self.get_argument('bucket_name')
        path_len = len(path)
        conn = S3Connection()
        bucket = conn.get_bucket(bucket_name)
        folders = bucket.list(path, "/")
        for folder in folders:
            if folder.name == path:
                continue
            if str(folder.name).endswith("/"):
                file_type = 'd'
                file_name = str(folder.name)[path_len:-1]
            else:
                _file_size = self.filesize(folder.size)
                file_type = 'f'
                file_name = str(folder.name)[path_len:]
            resp.append({"bucket": bucket_name, "path": path, "name": file_name, "type": file_type,
                         "size": _file_size if file_type == 'f' else ""})
        self.write(json.dumps(resp))
EN

回答 1

Stack Overflow用户

发布于 2019-02-18 18:09:08

Razvan为Boto3 3的上传和删除方法建立了一个小型替代品,该方法使用了“旋风”的AsyncHTTPClient;他发表了一篇关于这项工作的博客文章这里,并在GitHub上发布了他的代码。

正如最初的询问所强调的,提供的代码片段“不适用于不同位置的存储桶”,这里特别感兴趣的是Razvan注意到,“他的替代程序的主要思想是使用botocore构建请求(AWS希望使用基于AWS区域和请求数据的不同算法对请求进行签名),并且只在实际的异步调用中使用AsyncHTTPClient。”

我希望Razvan的工作仍然对你有用,或者对其他研究类似工作的人(就像我最近所做的那样)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49317369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档