Há mais exemplos de AWS SDK disponíveis no repositório AWSDoc SDK Examples GitHub .
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Concluir uma ação de multipart upload usando um AWS SDK
Os exemplos de código a seguir mostram como concluir uma ação de upload fracionado.
Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação em contexto nos seguintes exemplos de código:
- CLI
-
- AWS CLI
-
O seguinte comando conclui um upload fracionado da chave multipart/01
no bucket my-bucket
:
aws s3api complete-multipart-upload --multipart-upload file://mpustruct --bucket my-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
O ID de upload exigido por esse comando é a saída de create-multipart-upload
e também pode ser recuperado com list-multipart-uploads
.
A opção de upload fracionado no comando acima usa uma estrutura JSON que descreve quais partes do upload fracionado devem ser reagrupadas no arquivo completo. Neste exemplo, o prefixo file://
é usado para carregar a estrutura JSON de um arquivo na pasta local chamada mpustruct
.
mpustruct:
{
"Parts": [
{
"ETag": "e868e0f4719e394144ef36531ee6824c",
"PartNumber": 1
},
{
"ETag": "6bb2b12753d66fe86da4998aa33fffb0",
"PartNumber": 2
},
{
"ETag": "d0a0112e841abec9c9ec83406f0159c8",
"PartNumber": 3
}
]
}
O valor de ETag de cada parte carregada é gerado sempre que você fizer o upload de uma parte usando o comando upload-part
. Ele também pode ser recuperado ao chamar list-parts
ou calculado fazendo a soma de verificação MD5 de cada parte.
Saída:
{
"ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"",
"Bucket": "my-bucket",
"Location": "https://my-bucket.s3.amazonaws.com/multipart%2F01",
"Key": "multipart/01"
}
- Rust
-
- SDK for Rust
-
let _complete_multipart_upload_res = client
.complete_multipart_upload()
.bucket(&bucket_name)
.key(&key)
.multipart_upload(completed_multipart_upload)
.upload_id(upload_id)
.send()
.await
.unwrap();