无法从S3存储桶下载文件。

3
我想要从S3桶中下载所有位于此路径All Buckets /abc/or/uploads的文件。
我尝试了这个代码片段,但只能获取All Buckets /abc中的文件。
更改此行中的路径bucket_list = bucket.list('or/uploads')不起作用?为什么?
import boto
import sys, os
import logging

bucket_name = 'abc'
conn = boto.connect_s3('XXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXX+XXXXXXXXXXXXXX')
bucket = conn.get_bucket(bucket_name)
bucket_list = bucket.list('or/uploads')

for key in bucket.list():
    try:
        res = key.get_contents_to_filename(key.name)
        print "done"
    except:
        logging.info(key.name + ":" + "FAILED")

你说它不工作,是什么意思?你遇到了什么错误?你在发布的代码中没有使用 bucket_list - magni-
@magni- 没有错误,程序运行并完成执行,但当我在for循环中使用bucket_list时没有文件被下载,而当我使用上述代码时,只有此路径中的文件被下载 All Buckets /abc - prashantitis
你试过使用 /or/uploads 吗? - magni-
你具体是在哪里说的?在哪一行? bucket_list = bucket.list('or/uploads') 我想我已经使用了这个路径。 - prashantitis
1个回答

0

Amazon S3没有文件夹/目录。它是一个平面文件结构。 为了保持目录的外观,路径名被存储为对象键(文件名)的一部分。

确保您下载文件的位置具有完全相同的结构,即 /abc/or/uploads

片段

for key in bucket.list('or/uploads'):
    try:
        res = key.get_contents_to_filename(key.name)
        print "done"
    except:
        logging.info(key.name + ":" + "FAILED")

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接