我已经开发了一个Tornado,它为我获取AWS S3桶内容,下面是与Boto完美运行的代码片段。然而,这并不适用于不同位置的水桶。
该方法返回由文件名、大小和文件类型组成的列表(Resp)。
希望使用Boto3实现类似的目标。尝试了很多次,但是Boto3方法返回s3桶的所有内容,并带有完整的路径。
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))发布于 2019-02-18 18:09:08
https://stackoverflow.com/questions/49317369
复制相似问题