Remplir un multipart_upload avec boto3?

Essayé ceci:

import boto3
from boto3.s3.transfer import TransferConfig, S3Transfer
path = "/temp/"
fileName = "bigFile.gz" # this happens to be a 5.9 Gig file
client = boto3.client('s3', region)
config = TransferConfig(
    multipart_threshold=4*1024, # number of bytes
    max_concurrency=10,
    num_download_attempts=10,
)
transfer = S3Transfer(client, config)
transfer.upload_file(path+fileName, 'bucket', 'key')

Résultat: 5.9 concert de fichier sur s3. Ne semble pas contenir plusieurs parties.

J'ai trouvé cet exemple, mais part n'est pas défini.

import boto3

bucket = 'bucket'
path = "/temp/"
fileName = "bigFile.gz"
key = 'key'

s3 = boto3.client('s3')

# Initiate the multipart upload and send the part(s)
mpu = s3.create_multipart_upload(Bucket=bucket, Key=key)
with open(path+fileName,'rb') as data:
    part1 = s3.upload_part(Bucket=bucket
                           , Key=key
                           , PartNumber=1
                           , UploadId=mpu['UploadId']
                           , Body=data)

# Next, we need to gather information about each part to complete
# the upload. Needed are the part number and ETag.
part_info = {
    'Parts': [
        {
            'PartNumber': 1,
            'ETag': part['ETag']
        }
    ]
}

# Now the upload works!
s3.complete_multipart_upload(Bucket=bucket
                             , Key=key
                             , UploadId=mpu['UploadId']
                             , MultipartUpload=part_info)

Question: est-ce que quelqu'un sait comment utiliser le multipart télécharger avec boto3?

viens de voir votre question lors de la recherche d'un autre sujet, vous voudrez peut-être avoir un coup d'oeil à s3.transfert qui semblent à la poignée multipart automatiquement: boto3.readthedocs.org/en/latest/_modules/boto3/s3/transfer.html . (Jamais testé). Notez également que lors de plusieurs parties, vous ne verrez pas en plusieurs parties sur le S3, mais un seul fichier. Comme par AWS documentation: Après que toutes les parties de l'objet sont chargés, Amazon S3 assemble ces pièces et crée l'objet
Plus tôt à l'aide de boto2x nous avons été en mesure de définir chunk_size mais avec boto3 nous n'avons pas d'autre option pour définir la chunk_size. Je pense qu'il parle d'elle. boto3.readthedocs.io/en/latest/reference/services/...

OriginalL'auteur blehman | 2015-12-16