Загрузить файл на S3 - возможно ли передать загруженный объект файла непосредственно в boto3 без необходимости сохранения файла на диске локального сервера? - PullRequest
0 голосов
/ 15 декабря 2018

Это мой код Python Flask, который будет загружать файл в хранилище, совместимое с S3.(Это может быть хранилище AWS S3 или Digital Ocean Space)

# This is Python Flask code, which will be hosted in Digital Ocean Droplet

@app.route('/', methods=['POST'])
def upload_file():
    file = request.files['file']

    # Is it possible to eliminate this step???
    file.save('/tmp/file.ext')

    session = boto3.session.Session()

    client = session.client('s3',
        region_name='nyc3',
        endpoint_url='https://nyc3.digitaloceanspaces.com',
        aws_access_key_id='ACCESS_KEY',
        aws_secret_access_key='SECRET_KEY'
    )

    client.upload_file('/tmp/file.ext',  # Path to local file
        'my-space',  # Name of Space
        'file.ext')  # Name for remote file

Мой вопрос заключается в том, чтобы сократить объем операций ввода-вывода, возможно ли передать объект file непосредственно клиенту boto3без необходимости сохранения файла на локальном сервере с помощью file.save?

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