【发布时间】:2022-01-09 04:17:40
【问题描述】:
我目前正在尝试编写 Python 代码来在 AWS S3 存储桶和 AWS FSx Windows SMB 共享之间传输文件。这将在 Lambda 函数中使用。
我可以通过使用 Lambda 临时存储 /tmp 并将文件从 S3 传输到 /tmp,然后从 /tmp 传输到 SMB 共享来实现这一点,但是将文件直接从 S3 传输到 SMB 会更有效分享。 我可以使用 Python AWS BOTO3 SDK 使用以下代码直接从 S3 存储桶打开文件:
fileobj = s3client.get_object(
Bucket=bucketname,
Key = file_to_read)
然后,我尝试使用 pysmb 包中的 Python SMBConnection 类通过以下代码将 S3 文件的内容写入 SMB 共享:
connection.storeFile(service_name='s3-test',
path='test-write.txt',
file_obj = fileobj["Body"])
在 SMB 共享上成功创建了 test-write.txt 文件,但它是空的,大小为 0。没有错误,程序成功完成。 我认为这一定与 file_obj 所期望的 python“类文件对象”有关。由于没有错误,我假设我使用的 fileobj["Body"]) 是正确的?
欢迎提出任何想法?
【问题讨论】:
标签: python amazon-web-services amazon-s3 aws-lambda smb