2017-02-02 3 views
0

Я пишу скрипт python, и я пытаюсь загрузить файл в облако amazon, используя boto3. Проблема в том, что я хочу загрузить файл в определенную подпапку ... в некоторых случаях мне нужно будет загрузить файл в подпапку подпапки.загружать файл в подпапку amazon cloud, используя 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.

Я попытался понять это с документацией, но не смог. Может кто-нибудь, пожалуйста, объясните мне это?

Благодаря

ответ

2

Второй параметр к вашему s3.meta.client.upload_file() вызову должен быть имя ведра, а не путь к файлу (reference):

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

Что касается папок, вы должны определить структуру папок с помощью key (3-й параметр в upload_file()) параметр:

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

Thank you Симон-Пьер! – J4ce