You are on page 1of 2

upload

Client API S3

Post /Transfer
size (required)
number of files (required)
================================>
|
<================================
Response 201
"id": "Dh6OApB2e7-a0",
"size": 10000000000,
"region": "eu-west-1",
"parallelConnections": 4,
"parallelFiles": 5,
"parallelMinParts": 6,
"parallelMaxParts": 100

Client API S3
At any time PUT Transfer metadata But before the "lock"
Put /transfer/:id
preview
delivery
availabilityDuration
================================>
|
<================================
...

Client API S3
Foreach files : Post /transfer/:id/file
name(uniq)
size
================================>
|
<================================
Response 201
transfer
id
chunkSize
parts : [ detail de chaque parts ] parts pour commencer
partNumber
region
maxInlineParts

Client API S3
(1) Post /transfer/:id/file/:fileId/part
params { parts : [1,2,3, ..., 31] }
================================>
|
<================================
response
list de parts avec pour chaque
id
url aws signée {for next request}
number
chunksize
lengthToRead
startIndex

Client API S3
PUT url
Send chunk of lengthToRead from the file to send at startIndex
===============================================================>
|
<===============================================================
Response 200 if else retry sur la meme url si encore valide
sinon (1)
header etag

Client API S3
tell server that part has been sent
PUT /transfer/:id/file/:file/part/:partid
etag
number (parts number)
crc32
================================>
|
<================================

N times by number of parts

Client API S3
PUT /transfer/:id/file/:fileId
================================>
|
<================================
Si erreur fichier non pris en compte
Si 200 ok fichier transmis

Recommencer sur le fichier suivant

Client API S3
Finish transfer
PUT /transfer/:id/lock
================================>
|
<================================
availabilityStartDate
availabilityEndDate
size
region
...

You might also like