Para aumentar a eficiência do upload de objetos grandes, o Object Storage Service (OSS) oferece dois métodos: upload retomável e multipart upload. Este tópico descreve esses métodos e fornece links para a documentação relacionada como referência adicional.
Observações de uso
O uso de upload simples, como PutObject, para enviar um objeto grande pode causar os seguintes problemas:
Limite de tamanho máximo do objeto: A operação
PutObjectnão permite uploads superiores a 5 GB. Tentativas acima desse limite falham.Tempo necessário para o upload: O envio de objetos grandes demanda muito tempo, principalmente em conexões de rede instáveis. Transmissões prolongadas ficam vulneráveis a oscilações na rede, o que pode causar interrupções ou timeouts.
Consumo de memória: O upload de objetos grandes pode elevar o consumo de memória, especialmente em ambientes com recursos limitados, afetando a estabilidade e o desempenho do sistema.
Por isso, recomendamos o uso de upload retomável ou multipart upload para garantir maior eficiência e confiabilidade no envio de objetos grandes.
Upload retomável
O Upload retomável (OSS SDK for Go 1.0) é um método eficiente para enviar objetos grandes, ideal quando a conexão de rede é instável ou quando o tamanho do objeto ultrapassa 5 GB. Esse recurso divide automaticamente o objeto em várias partes e faz o upload paralelo delas. Durante o processo, o progresso fica registrado em um arquivo de checkpoint. Caso haja interrupção, o upload recomeça exatamente do ponto salvo nesse arquivo. Isso elimina a necessidade de reenviar todo o objeto e aumenta significativamente a eficiência e a confiabilidade.
Multipart upload
O Multipart upload (Go SDK V1) é uma abordagem comum para o envio de objetos grandes. Nesse caso, divida manualmente o objeto em várias partes e chame as operações de multipart upload correspondentes. Em comparação ao upload retomável, essa opção oferece maior flexibilidade. Ela permite ajustar dinamicamente o tamanho das partes e cancele tarefas durante o processo. É indicada para cenários que exigem gerenciamento detalhado do fluxo de upload.
Comparação entre os métodos
|
Item |
Upload retomável |
Multipart upload |
|
Cenário |
Ideal para quem busca enviar objetos grandes de forma simples e rápida, sem se preocupar com detalhes técnicos. |
Recomendado quando há necessidade de controle granular sobre o processo de upload e capacidade técnica disponível. |
|
Upload simultâneo |
Suportado. |
Suportado. |
|
Retomada a partir do ponto de falha |
Sim. Permite continuar o upload a partir da posição salva no arquivo de checkpoint. |
Não suportado. Não é possível retomar diretamente com base no arquivo de checkpoint. |
|
Tamanho das partes |
Deve ser predefinido. |
Pode ser ajustado dinamicamente. |
|
Confiabilidade |
Alta. Reduz falhas causadas por instabilidades na rede. |
Inferior à do upload retomável. Requer tratamento manual das partes com falha. |
|
Complexidade de gerenciamento |
Baixa. Basta chamar a operação UploadFile. |
Elevada. Exige a chamada das operações InitiateMultipartUpload, UploadPart e CompleteMultipartUpload. |
|
Flexibilidade |
Limitada. Não permite controle detalhado do processo. |
Alta. Possibilita gerenciar manualmente cada etapa, facilitando o monitoramento em tempo real. |
|
Esforço de desenvolvimento |
Mínimo. Apenas a operação UploadFile é necessária para concluir o upload retomável. |
Alto. Envolve divisão manual do objeto, implementação de lógica adicional para orquestrar múltiplas operações e tratamento de exceções diversas. |