将 S3 子文件夹中的特定文件导入 Python
Import specific file from an S3 subfolder into Python
我正在使用 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
方法连接 returns 一个 Bucket
对象。要访问该存储桶中的单个文件或目录,您需要使用文件路径创建一个 Key
对象,或使用带有文件夹路径的 Bucket.list_keys
来获取该路径下文件的所有键。每个 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 以获取有关可以使用密钥执行的操作的文档。
我正在使用 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
方法连接 returns 一个 Bucket
对象。要访问该存储桶中的单个文件或目录,您需要使用文件路径创建一个 Key
对象,或使用带有文件夹路径的 Bucket.list_keys
来获取该路径下文件的所有键。每个 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 以获取有关可以使用密钥执行的操作的文档。