python - 将特定文件从 S3 子文件夹导入到 Python 中

标签 python amazon-s3 boto

我正在使用 boto 库将数据从 S3 导入 python,遵循以下说明:http://boto.cloudhackers.com/en/latest/s3_tut.html

下面的代码允许我将主文件夹中的所有文件导入到python中,但是替换c.get_bucket('mainfolder/subfolder')不起作用。有谁知道我如何访问子文件夹并导入其内容?

import boto
c = boto.connect_s3()
b = c.get_bucket('mainfolder')

最佳答案

连接上的 get_bucket 方法返回一个 Bucket 对象。要访问该存储桶中的单个文件或目录,您需要使用文件路径创建一个 Key 对象,或者使用带有文件夹路径的 Bucket.list_keys 来获取所有 key 对于该路径下的文件。每个Key对象充当存储文件的句柄。然后,您可以调用按键上的功能来操作存储的文件。例如:

import boto

connection = boto.connect_s3()
bucket = connection.get_bucket('myBucketName')

fileKey = bucket.get_key('myFileName.txt')
print fileKey.get_contents_as_string()

for key in bucket.list('myFolderName'):
    print key.get_contents_as_string()

这里的示例只是打印出每个文件的内容(这可能是一个坏主意!)。根据您想要对文件执行的操作,您可能希望将它们下载到临时目录,或将它们读取到变量等。请参阅 http://boto.cloudhackers.com/en/latest/ref/s3.html#module-boto.s3.key有关可以使用 key 执行哪些操作的文档。

关于python - 将特定文件从 S3 子文件夹导入到 Python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35000621/

相关文章:

google-cloud-storage - gsutil 是否支持使用服务帐号信息创建 boto 文件?

python - 将DataFrame中的内容转换为txt文件

python - 如何将类似字符串的字节转换为普通字节?

ruby-on-rails - 使用 Heroku 显示存储在 Amazon S3 上的图像

amazon-s3 - 从深 S3 路径层次结构中的 CSV 读取 Dask DataFrame

django - 无法使用 boto 和 django 在 S3 中设置文件权限

python - 使用 wx.DC 设置背景颜色的更好方法

Python:将 '3.5' 转换为整数

amazon-s3 - 警告 - AWS 凭证在 Google Play 控制台上公开

amazon-web-services - 如何更改存储在 AWS S3 上的 video.mp4 文件的分辨率?