O OSS oferece suporte a objetos de 0 bytes a 48,8 TB. Para objetos maiores que 5 GB, upload simples, upload por formulário e upload por anexação não são compatíveis. Use upload multipart, upload resumível, ossbrowser ou ossutil.
Métodos de upload
O OSS oferece suporte a objetos de 0 bytes a 48,8 TB. Métodos alternativos de upload são úteis nos seguintes cenários:
O objeto é maior que 5 GB. O console do OSS, upload simples, upload por formulário e upload por anexação não oferecem suporte a objetos acima desse limite.
O objeto é menor que 5 GB, mas timeouts intermitentes ou quedas de conexão ocorrem devido ao baixo desempenho da rede.
Escolha um método de upload
|
Cenário |
Método recomendado |
|
Objeto > 5 GB |
Upload multipart, upload resumível, ossutil ou ossbrowser |
|
Objeto < 5 GB com timeouts frequentes ou interrupções |
Upload resumível |
|
Uploads em lote de larga escala |
ossutil (lotes pequenos) ou ossutil + ossimport (lotes grandes) |
|
Upload em streaming com tamanho desconhecido do objeto |
Upload multipart |
Método 1: Upload multipart ou upload resumível
Upload multipart e upload resumível são indicados para:
Objetos maiores que 5 GB: PutObject não oferece suporte a objetos acima desse limite.
Uploads em streaming: inicie o upload antes que o tamanho final do objeto seja conhecido — por exemplo, em aplicações de gravação de vídeo em nuvem ou videovigilância.
Redes instáveis: o upload resumível reenvia apenas as partes que falharam, e não o objeto inteiro. Isso é especialmente eficiente quando os uploads são interrompidos com frequência.
Aceleração de upload paralelo: divida um objeto grande em partes e faça upload delas simultaneamente para maximizar o throughput.
Para mais informações, consulte Upload multipart e Upload resumível.
Método 2: ossbrowser
O ossbrowser usa upload multipart e upload resumível por padrão, com suporte a objetos de até 48,8 TB. Tenha em mente o seguinte:
Faça logon com um token do Security Token Service (STS) ou use o par de AccessKey de um usuário RAM.
Para usar o recurso de política simplificada, faça logon com o par de AccessKey de um usuário RAM que tenha permissões de configuração do RAM.
Quando muitos uploads ou downloads são executados simultaneamente, reduza o limite de concorrência para melhorar a velocidade de uma tarefa específica.
O tamanho máximo de objeto suportado é 48,8 TB.
Para mais informações, consulte Operações comuns.
Método 3: ossutil
Use o comando cp para fazer upload de objetos grandes. O ossutil oferece controle granular sobre upload resumível e concorrência:
Use o comando
cppara fazer upload de objetos grandes.Defina
--bigfile-thresholdpara especificar o tamanho de objeto acima do qual o upload resumível é usado automaticamente.Defina
-jobse-parallelpara controlar o número de tarefas de upload simultâneas ao fazer upload de um ou mais objetos grandes.Para uploads em lote de muitos objetos, use o ossutil junto com o ossimport.
Para lotes menores, o ossutil sozinho é suficiente.
Para mais informações, consulte cp (fazer upload de arquivos).
Solução de problemas
-
PutObject falha ao fazer upload de objetos grandes. Causas comuns:
O objeto excede 5 GB. PutObject não oferece suporte a objetos maiores que 5 GB. Use o ossutil para fazer upload do objeto em partes.
-
PutObject expira sem resposta. Um valor elevado da unidade máxima de transmissão (MTU) pode causar isso. Execute
netstat -ina instância do Elastic Compute Service (ECS) para verificar o MTU atual. O MTU padrão para placas de rede internas e externas é 1500.
Reduza o MTU. Por exemplo, execute
ip link set dev eth0 mtu 1470no Linux para definir o MTU do eth0 como 1470.Alterne para a operação MultipartUpload ou o ossutil.
-
Não é possível fazer upload de um objeto grande em partes simultaneamente. Para ativar uploads de partes simultâneos:
Com o ossutil: especifique
--bigfile-threshold,-jobse-parallelpara controlar a concorrência.Com APIs ou SDKs do OSS: use a operação MultipartUpload e implemente a lógica de upload simultâneo. Muitos SDKs expõem um parâmetro de concorrência — por exemplo, taskNum no OSS SDK for Java e num_threads no OSS SDK for Python.