[英]Python Move Files from AWS S3 to SMB Share
我目前正在嘗試編寫 Python 代碼來在 AWS S3 存儲桶和 AWS FSx Windows SMB 共享之間傳輸文件。 這將用於 Lambda function。
我可以通過使用 Lambda 臨時存儲 /tmp 並將文件從 S3 傳輸到 /tmp 然后從 /tmp 傳輸到 SMB 共享來實現這一點,但是將文件直接從 S3 傳輸到 SMB 共享會更有效。 我可以使用 Python AWS BOTO3 SDK 使用以下代碼直接從 S3 存儲桶打開文件:
fileobj = s3client.get_object(
Bucket=bucketname,
Key = file_to_read)
然后,我嘗試使用來自 pysmb ZEFE90A8E604A7C840E88D03A67F6B7D8 的 Python SMBConnection class 使用以下代碼將 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"]) 是正確的嗎?
任何想法都會非常受歡迎?
問題可能來自錯誤的指針 position 方法嘗試寫入。
可以使用文件 object 的查找方法更改文件指針的 position。
在這樣寫之前放置seek(0)
行。
file_obj.seek(0)
connection.storeFile(...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.