【发布时间】:2021-10-11 17:37:35
【问题描述】:
我从 S3 下载了一个文件,并将 S3 响应对象传递给其他函数。
我假设密钥/文件名必须存储在该对象本身的某个位置,但我似乎找不到它。我不想将文件名传递给每个需要它的函数。
我所有的谷歌搜索只是展示了如何在不下载的情况下从存储桶中获取文件名,而不是如何从响应中获取文件名。
我正在使用 Python/Boto3:
def main():
file = s3.Object("my cool bucket", "my cool file").get()
process_file(file)
def process_file(file):
print(file.name)
# how do I make this work w/o passing in filename as arg to original function
【问题讨论】:
-
您使用什么代码下载文件?如果您分享您的代码,我们绝对可以提供帮助 - 推荐阅读:stackoverflow.com/help/minimal-reproducible-example
-
另外,如果您是下载它的人,那么您已经使用密钥下载了它——您真正想要达到什么目的?
-
下载后,我将文件传递给新函数。我可以将文件名连同它一起传递,但这似乎很愚蠢——这肯定是某处对象的一部分吗?
-
生成一个最小的例子并不重要——这是一个应该通过文档回答的技术问题,但我找不到它。
-
我了解 - 它是 Python 文件对象还是 S3 响应对象?这就是我询问代码的原因。
标签: amazon-web-services amazon-s3 boto3