使用python boto3将文件上传到amazon cloud子文件夹

时间:2017-02-02 17:12:10

标签: python amazon-web-services amazon-s3 boto3

我正在编写一些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则不行。

我试图用文档来理解它但不能。有人可以向我解释一下吗?

谢谢

1 个答案:

答案 0 :(得分:3)

s3.meta.client.upload_file()来电的第二个参数应该是存储桶名称,而不是文件路径(reference):

s3.meta.client.upload_file( "C:\Users...\folder1" + "\" + someFile.txt, "your-bucket-name", "someFile.txt")

对于文件夹,您必须使用keyupload_file())参数中的第3个参数确定文件夹结构:

s3.meta.client.upload_file( "C:\Users...\folder1" + "\" + someFile.txt, "your-bucket-name", "some_folder/some_subfoler/someFile.txt")