Essayé ceci:Terminez un multipart_upload avec boto3?
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 fichier concert sur s3. Ne semble pas contenir plusieurs parties. J'ai trouvé this example, 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 téléchargement multipart avec boto3?
juste vu votre question lorsque vous cherchez un autre sujet, vous voudrez peut-être jeter un oeil à s3. transfert qui semble gérer automatiquement le multipart: http://boto3.readthedocs.org/en/latest/_modules/boto3/s3/transfer.html. (Jamais testé si). Notez également que lorsque vous utilisez multipart, vous ne verrez pas plusieurs parties sur S3 mais un seul fichier. Conformément à la documentation AWS: Une fois toutes les parties de votre objet téléchargées, Amazon S3 assemble ces pièces et crée l'objet – Tom
@Tom Plus tôt, en utilisant boto2x, nous avons pu définir chunk_size mais avec boto3 nous n'avons aucune option pour définir chunk_size. Je pense qu'il en parle. http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.create_multipart_upload –