O upload por anexação permite adicionar conteúdo diretamente ao final de um objeto anexável existente. Este tópico descreve como executar um upload por anexação com o OSS SDK for Go.
Observações de uso
Os códigos de exemplo neste tópico usam o ID da região
cn-hangzhoupara a região China (Hangzhou). Por padrão, o endpoint público acessa recursos em um bucket. Para acessar recursos do bucket com outros serviços da Alibaba Cloud na mesma região, use o endpoint interno. Para mais informações sobre regiões e endpoints do OSS, consulte Regiões e endpoints.Neste tópico, as credenciais de acesso são lidas de variáveis de ambiente. Para saber como configurar credenciais de acesso, consulte Configurar credenciais de acesso.
Se o arquivo de destino não existir, a chamada à API de upload por anexação criará um objeto anexável.
-
Caso o arquivo de destino já exista:
Se o arquivo for um objeto anexável e a posição de anexação especificada coincidir com o tamanho atual do arquivo, o conteúdo será adicionado ao final dele.
Se o arquivo for um objeto anexável, mas a posição de anexação especificada diferir do tamanho atual do arquivo, o sistema lançará a exceção PositionNotEqualToLength.
Se o arquivo não for um objeto anexável, como um objeto normal enviado via upload simples, o sistema acionará a exceção ObjectNotAppendable.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões completas. Usuários RAM ou funções RAM vinculados a essa conta não têm permissão inicialmente. A conta Alibaba Cloud ou o administrador deve conceder as permissões operacionais necessárias por meio de políticas do RAM ou Bucket Policy.
|
API |
Ação |
Descrição |
|
AppendObject |
|
Envia um objeto anexando-o a um objeto existente. |
|
|
Necessária quando tags de objeto são especificadas via x-oss-tagging durante o envio por anexação. |
Definição de métodos
Para cenários de upload por anexação, o OSS SDK for Go oferece a operação AppendFile, que simula comportamentos de leitura e escrita de arquivos para objetos em um bucket. A tabela a seguir detalha as operações AppendFile e AppendObject.
|
Nome da operação |
Descrição |
|
Client.AppendObject |
Executa um upload por anexação. O objeto final pode ter até 5 GiB. Suporta verificação de integridade de dados CRC-64 (ativada por padrão). Compatível com barras de progresso. O corpo da requisição é do tipo io.Reader. Se o tipo io.Seeker for suportado, haverá retransmissão em caso de falha. Esta operação não é idempotente e a retransmissão pode falhar. |
|
Client.AppendFile |
Oferece as mesmas capacidades da operação Client.AppendObject. Otimiza a tolerância a falhas de retransmissão. Inclui a operação AppendOnlyFile. AppendOnlyFile.Write AppendOnlyFile.WriteFrom |
API premium de upload por anexação: AppendFile
API básica de upload por anexação: AppendObject
Códigos de exemplo
Usar AppendFile para executar um upload por anexação
Usar AppendObject para executar um upload por anexação
Cenários comuns
Executar um upload por anexação e exibir uma barra de progresso
Referências
Para obter o código de exemplo completo sobre upload por anexação, consulte os exemplos no GitHub e o Guia do Desenvolvedor.
Para mais detalhes sobre a operação de API premium de upload por anexação, consulte AppendFile.
Para mais informações sobre a operação de API básica de upload por anexação, consulte AppendObject.