我正在编写一些python脚本,我正在尝试使用boto3将文件上传到亚马逊云。问题是我想将文件上传到特定的子文件夹...在某些情况下,我需要将文件上传到子文件夹的子文件夹。
我正在尝试这样做:
s3.meta.client.upload_file( "C:\\Users...\\folder1" + "\\" + someFile.txt, "folder/subfolder1/subfolder2", someFile.txt)
我收到以下错误消息:
Invalid bucket name "...": Bucket name must match the regex "^[a-zA-Z0-9. \-]{1,255}$"
如果我只是做文件夹,它会起作用,但如果我尝试folder/subfolder1/subfolder2
则不行。
我试图用文档来理解它但不能。有人可以向我解释一下吗?
谢谢
答案 0 :(得分:3)
s3.meta.client.upload_file()
来电的第二个参数应该是存储桶名称,而不是文件路径(reference):
s3.meta.client.upload_file( "C:\Users...\folder1" + "\" + someFile.txt, "your-bucket-name", "someFile.txt")
对于文件夹,您必须使用key
(upload_file()
)参数中的第3个参数确定文件夹结构:
s3.meta.client.upload_file( "C:\Users...\folder1" + "\" + someFile.txt, "your-bucket-name", "some_folder/some_subfoler/someFile.txt")