O upload por append permite acrescentar conteúdo diretamente ao final de um objeto appendable existente. Este tópico descreve como fazer upload por append usando o OSS SDK for Go.
Notas de uso
O código de exemplo neste tópico usa o ID de região
cn-hangzhoupara a região china (Hangzhou). Por padrão, o acesso a recursos em um bucket utiliza o endpoint público. Para acessar recursos no bucket por meio de outros serviços da Alibaba Cloud na mesma região do bucket, use o endpoint interno. Para obter mais informações sobre as regiões e endpoints do OSS, consulte Regions and endpoints.Neste tópico, o exemplo lê as credenciais de acesso a partir de variáveis de ambiente. Para obter mais informações sobre como configure as credenciais de acesso, consulte Configure access credentials.
Se o arquivo ao qual você deseja acrescentar conteúdo não existir, a API de upload por append crie um objeto appendable.
-
Se o arquivo ao qual você deseja acrescentar conteúdo já existir:
Se o arquivo for um objeto appendable e a posição de append que você especifique for igual ao tamanho atual do arquivo, o sistema acrescenta o conteúdo ao final do arquivo.
Se o arquivo for um objeto appendable, mas a posição de append que você especifique for diferente do tamanho atual do arquivo, ocorre a exceção PositionNotEqualToLength.
Se o arquivo não for um objeto appendable, como um objeto normal enviado por meio de upload simples, ocorre a exceção ObjectNotAppendable.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões completas. Usuários RAM ou funções RAM sob uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.
|
API |
Ação |
Descrição |
|
AppendObject |
|
Use esta operação para fazer upload de um objeto adicionando-o a um objeto existente. |
|
|
Ao fazer upload de um objeto adicionando-o a um objeto existente, se você especifique tags de objeto por meio de x-oss-tagging, essa permissão é obrigatória. |
Definição do método
Para cenários de upload por append, o OSS SDK for Go fornece a nova operação AppendFile para simular comportamentos de leitura e gravação de arquivo de objetos em um bucket. A tabela a seguir descreve as operações AppendFile e AppendObject.
|
Nome da operação |
Descrição |
|
Client.AppendObject |
Executa um upload por append. O objeto final pode ter até 5 GiB. Suporta a verificação de integridade de dados CRC-64 (ativada por padrão). Suporta barras de progresso. O corpo da requisição é do tipo io.Reader. Se o tipo io.Seeker for compatível, a retransmissão fica disponível em caso de falha. Essa operação não é idempotente e a retransmissão pode falhar. |
|
Client.AppendFile |
Oferece os mesmos recursos da operação Client.AppendObject. Otimiza a tolerância a falhas em caso de erros de retransmissão. Inclui a operação AppendOnlyFile. AppendOnlyFile.Write AppendOnlyFile.WriteFrom |
API premium de upload por append: AppendFile
API básica de upload por append: AppendObject
Código de exemplo
Use AppendFile para fazer upload por append
Use AppendObject para fazer upload por append
Cenários comuns
Faça upload por append e exiba uma barra de progresso
Referências
Para obter o código de exemplo completo para upload por append, consulte os exemplos do GitHub e o Guia do Desenvolvedor.
Para obter mais informações sobre a operação de API premium para upload por append, consulte AppendFile.
Para obter mais informações sobre a operação de API básica para upload por append, consulte AppendObject.