O upload multipart divide arquivos grandes em partes menores para transferência simultânea. Isso permite uploads retomáveis e melhora o desempenho em redes instáveis.
Como funciona
No upload multipart, um arquivo grande é dividido em partes transferidas de forma independente. Se uma parte falhar, apenas ela precisa ser reenviada. Um UploadId identifica a tarefa de upload e associa todas as partes. O processo tem três etapas:
Inicializar o upload: Chame a operação InitiateMultipartUpload para criar um upload multipart e obter um UploadId exclusivo que identifique as operações subsequentes.
Enviar os dados das partes do arquivo: Envie o arquivo em partes simultaneamente, cada uma com tamanho entre 100 KB e 5 GB. Há suporte para upload retomável.
Concluir o upload combinando as partes: Chame a operação CompleteMultipartUpload para combinar todas as partes na ordem de seus números de parte em um objeto completo.
Implementar upload multipart
Devido a uma alteração de política para melhorar a conformidade e a segurança, a partir de 20 de março de 2025, novos usuários do OSS devem use a custom domain name (CNAME) para executar operações de API de dados em buckets do OSS localizados em regiões da China continental. Os endpoints públicos padrão são restritos para essas operações. Consulte o anúncio oficial para obter a lista completa das operações afetadas. Se você acessar seus dados via HTTPS, deverá bind a valid SSL Certificate ao seu domínio personalizado. Isso é obrigatório para acesso ao OSS Console, pois o console impõe HTTPS.
Utilize ferramentas gráficas, ferramentas CLI ou SDKs para implementar o upload multipart.
O console do OSS não oferece suporte a upload multipart.
É possível enviar arquivos compactados criptografados, mas não é possível enviar diretórios.
Usar ferramentas para divisão automática de partes
Para tarefas de desenvolvimento, teste ou O&M, utilize ferramentas gráficas ou CLI que lidam com a divisão de partes automaticamente.
-
Ferramenta de gerenciamento gráfico: OSS Browser
O ossbrowser 2.0 ativa o upload multipart por padrão e fornece uma interface visual para monitorar o progresso do upload.
-
ossutil
O comando cp do ossutil 2.0 ativa automaticamente o upload multipart para arquivos maiores que 100 MiB. Para controlar manualmente o processo, use os comandos initiate-multipart-upload, upload-part e complete-multipart-upload juntos.
package main // Sample for canceling a multipart upload using OSS Go SDK V1. import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" ) func main() { // Obtain access credentials from environment variables. provider, _ := oss.NewEnvironmentVariableCredentialsProvider() // Create an OSS client instance. client, _ := oss.New( "oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"), ) // Obtain the bucket object. bucket, _ := client.Bucket("example-bucket") // Configure file information. key := "dest.jpg" uploadId := "D9F4****************************" // Create an InitiateMultipartUploadResult object. imur := oss.InitiateMultipartUploadResult{ UploadID: uploadId, Key: key, } // Cancel the multipart upload. bucket.AbortMultipartUpload(imur) fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId) }
Controle programático com SDKs
Os SDKs encapsulam o upload multipart com tamanhos de parte personalizados, simultaneidade e tratamento de erros. As seções a seguir mostram exemplos para SDKs comuns. Para outras linguagens, consulte SDK Reference.
Antes de executar o código, instale o SDK e configure as credenciais de acesso como variáveis de ambiente. Se você usar um usuário RAM ou função RAM, conceda as permissões necessárias. Para mais informações, consulte API permissions .
Java SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Java SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Python SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Python SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Go SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Go SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Limpar partes incompletas
Devido a uma alteração de política para melhorar a conformidade e a segurança, a partir de 20 de março de 2025, novos usuários do OSS devem use a custom domain name (CNAME) para executar operações de API de dados em buckets do OSS localizados em regiões da China continental. Os endpoints públicos padrão são restritos para essas operações. Consulte o anúncio oficial para obter a lista completa das operações afetadas. Se você acessar seus dados via HTTPS, deverá bind a valid SSL Certificate ao seu domínio personalizado. Isso é obrigatório para acesso ao OSS Console, pois o console impõe HTTPS.
Se um upload multipart for interrompido sem chamar AbortMultipartUpload, as partes enviadas permanecerão no bucket e continuarão a gerar taxas de armazenamento. Limpe essas partes para evitar custos desnecessários.
Usar o console
Acesse a lista de Buckets e clique no bucket de destino.
Na lista Objects, clique em Parts para visualizar e excluir partes.
Usar regras de ciclo de vida
Regras de ciclo de vida limpam automaticamente partes expiradas, reduzindo a manutenção manual. Para mais informações, consulte Clean up expired parts using lifecycle rules.
Usar ferramentas
-
ossbrowser
Na página de lista de objetos do bucket, clique em Parts para visualizar e excluir partes.
-
ossutil
Use o comando abort-multipart-upload para cancelar um upload multipart e excluir os dados das partes:
package main // Sample for canceling a multipart upload using OSS Go SDK V1. import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" ) func main() { // Obtain access credentials from environment variables. provider, _ := oss.NewEnvironmentVariableCredentialsProvider() // Create an OSS client instance. client, _ := oss.New( "oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"), ) // Obtain the bucket object. bucket, _ := client.Bucket("example-bucket") // Configure file information. key := "dest.jpg" uploadId := "D9F4****************************" // Create an InitiateMultipartUploadResult object. imur := oss.InitiateMultipartUploadResult{ UploadID: uploadId, Key: key, } // Cancel the multipart upload. bucket.AbortMultipartUpload(imur) fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId) }
Usar SDKs
Chame AbortMultipartUpload para cancelar um upload multipart e excluir os dados das partes. As seções a seguir mostram códigos de exemplo para SDKs comuns. Para outras linguagens, consulte SDK Reference.
Antes de executar o código, instale o SDK e configure as credenciais de acesso como variáveis de ambiente. Se você usar um usuário RAM ou função RAM, conceda as permissões necessárias. Para mais informações, consulte API permissions .
Java SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Java SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Python SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Python SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Go SDK V2
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Go SDK V1
package main
// Sample for canceling a multipart upload using OSS Go SDK V1.
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, _ := oss.NewEnvironmentVariableCredentialsProvider()
// Create an OSS client instance.
client, _ := oss.New(
"oss-cn-hangzhou.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("cn-hangzhou"),
)
// Obtain the bucket object.
bucket, _ := client.Bucket("example-bucket")
// Configure file information.
key := "dest.jpg"
uploadId := "D9F4****************************"
// Create an InitiateMultipartUploadResult object.
imur := oss.InitiateMultipartUploadResult{
UploadID: uploadId,
Key: key,
}
// Cancel the multipart upload.
bucket.AbortMultipartUpload(imur)
fmt.Printf("Canceled multipart upload successfully. Upload ID: %s\n", uploadId)
}
Aplicar em produção
Melhores práticas
-
Otimização de desempenho: Melhorar a velocidade e a estabilidade do upload
Controle o número de partes simultâneas: Equilibre a simultaneidade com a largura de banda disponível e a carga do dispositivo. Conexões excessivas causam congestionamento; poucas conexões subutilizam a rede.
Evite prefixos sequenciais nos nomes: Não use prefixos sequenciais, como timestamps, nos nomes dos objetos. Isso concentra solicitações em uma única partição e causa hotspots. Para mais informações, consulte OSS performance best practices.
-
Garantia de confiabilidade: Implementar uploads retomáveis
Uploads multipart não expiram e suportam pausa e retomada. Use o UploadId como identificador da tarefa. Se uma parte falhar, reenvie apenas essa parte em vez de todo o arquivo.
-
Otimização de custos: Otimizar a estratégia de upload para Deep Cold Archive
Para otimizar custos no Deep Cold Archive, envie arquivos como objetos Standard e use uma lifecycle rule para fazer a transição deles. Isso evita taxas PUT por solicitação mais altas decorrentes de uploads diretos.
-
Uploads retransmitidos por proxy ou Function Compute
Ao enviar objetos grandes através de um servidor proxy ou Function Compute, o upload pode falhar devido a limites de tempo limite do gateway, como um erro HTTP 524. Prefira usar uma URL pré-assinada para que o cliente envie diretamente para o OSS, ignorando a camada de proxy. Você também pode usar credenciais temporárias STS para permitir que o frontend envie diretamente para o OSS. Se os uploads precisarem passar por um proxy, use upload multipart para dividir o objeto grande em partes menores e envie-as uma a uma, o que reduz o risco de tempo limite em uma única solicitação.
Prevenção de riscos
-
Segurança de dados: Evitar substituição de arquivos
Defina
x-oss-forbid-overwritecomotrueno cabeçalho da solicitação para impedir substituições de mesmo nome que podem causar perda de dados. Você também pode ativar versioning para reter versões históricas.
Limites
|
Limite |
Descrição |
|
Tamanho de um único arquivo |
Até 48,8 TB |
|
Número de partes |
1 a 10.000 |
|
Tamanho de uma única parte |
O tamanho mínimo é 100 KB e o máximo é 5 GB. O tamanho da última parte pode ser inferior a 100 KB. |
|
Número máximo de partes retornadas em uma única solicitação ListParts |
1.000 |
|
Número máximo de eventos de upload multipart retornados em uma única solicitação ListMultipartUploads |
1.000 |
Faturamento
A tabela a seguir lista os itens faturáveis para operações de upload multipart. Para obter mais informações sobre faturamento, consulte Request fees e Storage fees.
|
API |
Item faturável |
Descrição |
|
InitiateMultipartUpload |
Requisições PUT |
As taxas são calculadas com base no número de requisições bem-sucedidas. |
|
UploadPart |
Requisições PUT |
O custo é determinado pela quantidade de requisições concluídas com sucesso. |
|
Taxas de armazenamento |
A cobrança de armazenamento considera a classe de armazenamento das partes (igual à do objeto), o tamanho real e a duração do armazenamento. Não há unidade mínima de medição. O faturamento cessa quando as partes são excluídas ou combinadas em um objeto completo. |
|
|
UploadPartCopy |
Requisições PUT |
A tarifação baseia-se no total de requisições executadas com êxito. |
|
CompleteMultipartUpload |
Requisições PUT |
Os valores são apurados conforme o volume de requisições bem-sucedidas. |
|
Taxas de armazenamento |
As tarifas de armazenamento variam de acordo com a classe de armazenamento, o tamanho e o tempo de retenção do objeto. |
|
|
AbortMultipartUpload |
Requisições PUT |
O cálculo das taxas leva em conta o número de requisições completadas com sucesso. Importante
|
|
ListMultipartUploads |
Requisições PUT |
A cobrança corresponde ao total de requisições processadas com sucesso. |
|
ListParts |
Requisições PUT |
As taxas derivam da quantidade de requisições bem-sucedidas. |
Ao utilizar UploadPartCopy para copiar dados de um objeto existente e fazer upload de uma parte, se a classe de armazenamento do objeto source for Infrequent Access (IA), Archive ou Cold Archive, haverá cobrança de taxas de recuperação de dados (caso o objeto source utilize a classe Archive e o acesso em tempo real a objetos Archive esteja ativado, serão aplicadas taxas de acesso em tempo real para objetos Archive). Além disso, classes como IA, Archive e Cold Archive possuem requisitos de duração mínima de armazenamento e tamanho mínimo faturável, o que pode gerar as respectivas taxas mínimas de armazenamento.
Permissões de API
Uma conta Alibaba Cloud possui permissões totais de API por padrão. Usuários RAM e funções RAM necessitam de permissões explícitas para cada operação de API. Para mais detalhes, veja RAM policies e Common examples of RAM policies.
|
API |
Ação |
Descrição |
|
InitiateMultipartUpload |
|
Inicializa um upload multipart. |
|
|
Esta permissão é necessária caso você especifique tags de objeto usando x-oss-tagging ao inicializar um upload multipart. |
|
|
|
Essas permissões são obrigatórias se os metadados do objeto contiverem X-Oss-Server-Side-Encryption: KMS durante o upload. |
|
|
|
||
|
UploadPart |
|
Faz o upload de uma parte. |
|
UploadPartCopy |
|
É necessária permissão de leitura no objeto source ao fazer upload de uma parte copiando dados de um objeto existente. |
|
|
É necessária permissão de escrita no objeto de destino ao fazer upload de uma parte copiando dados de um objeto existente. |
|
|
|
A permissão para ler a versão específica do objeto source é exigida quando se especifica a versão do objeto via versionId ao fazer upload de uma parte por cópia. |
|
|
CompleteMultipartUpload |
|
Combina as partes em um único objeto. |
|
|
Esta permissão torna-se obrigatória se tags de objeto forem definidas com x-oss-tagging durante a combinação das partes em um objeto. |
|
|
AbortMultipartUpload |
|
Cancela um evento de upload multipart e exclui os dados das partes correspondentes. |
|
ListMultipartUploads |
|
Lista todos os eventos de upload multipart em andamento, ou seja, aqueles iniciados mas ainda não concluídos ou cancelados. |
|
ListParts |
|
Enumera todas as partes enviadas com sucesso associadas a um UploadId específico. |