Выгрузка файлов в aws s3 bucket с помощью boto3 (python 3.x) с поддержкой файловой структуры? - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу загрузить файлы с диска в корзину aws s3, сохраняя другую структуру папок. Я могу создать ту же структуру, что и на диске, но мне нужно немного изменить ее структуру.

Структура папок на диске: /home/userdata/uploaded_folder/uploaded_file

Структура папки (ключа), которую я хочу сохранить в ведре aws:

/userdata/uploaded_folder/uploaded_file/ 

Мой текущий код такой:

from boto.s3.connection import S3Connection
from boto.s3.key import Key
import os

conn = S3Connection()
path = '/home/userdata/'
bucket = conn.get_bucket('myBuck')

for root, dirs, files in os.walk(path):
    for name in files:
        #print(root)
        path = root.split(os.path.sep)[1:]
        path.append(name)
        #print(path)
        key_id = os.path.join(*path)
        k = Key(bucket)
        k.key = key_id
        #print(key_id)
        #k.set_contents_from_filename(os.path.join(root, name))

Приведенный выше код создает точную структуру в корзине. Как внести изменения в путь?

1 Ответ

0 голосов
/ 02 ноября 2018

правильная строка

path = root.split(os.path.sep)[1:]

до

path = root.split(os.path.sep)[2:]

первый элемент в root.split (os.path.sep) is '' not 'home'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...