Todos os produtos
Search
Central de documentação

Object Storage Service:Multipart upload

Última atualização: Oct 12, 2026

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:

  1. Inicializar o upload: Chame a operação InitiateMultipartUpload para criar um upload multipart e obter um UploadId exclusivo que identifique as operações subsequentes.

  2. 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.

  3. 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.

image

Implementar upload multipart

Importante

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.

Nota
  • 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

Importante

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

  1. Acesse a lista de Buckets e clique no bucket de destino.

  2. 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-overwrite como true no 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
  • Nas regiões da China continental, as taxas de requisição PUT para excluir partes das classes Infrequent Access, Archive e Cold Archive por meio de regras de ciclo de vida são superiores às aplicadas a partes Standard. Não há cobrança de requisições PUT para exclusão de partes Deep Cold Archive via regras de ciclo de vida.

  • Na região Hong Kong (China) e nas regiões fora da China, não existem taxas de requisição PUT para excluir partes de qualquer classe de armazenamento usando regras de ciclo de vida.

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.

Nota

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

oss:PutObject

Inicializa um upload multipart.

oss:PutObjectTagging

Esta permissão é necessária caso você especifique tags de objeto usando x-oss-tagging ao inicializar um upload multipart.

kms:GenerateDataKey

Essas permissões são obrigatórias se os metadados do objeto contiverem X-Oss-Server-Side-Encryption: KMS durante o upload.

kms:Decrypt

UploadPart

oss:PutObject

Faz o upload de uma parte.

UploadPartCopy

oss:GetObject

É necessária permissão de leitura no objeto source ao fazer upload de uma parte copiando dados de um objeto existente.

oss:PutObject

É necessária permissão de escrita no objeto de destino ao fazer upload de uma parte copiando dados de um objeto existente.

oss:GetObjectVersion

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

oss:PutObject

Combina as partes em um único objeto.

oss:PutObjectTagging

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

oss:AbortMultipartUpload

Cancela um evento de upload multipart e exclui os dados das partes correspondentes.

ListMultipartUploads

oss:ListMultipartUploads

Lista todos os eventos de upload multipart em andamento, ou seja, aqueles iniciados mas ainda não concluídos ou cancelados.

ListParts

oss:ListParts

Enumera todas as partes enviadas com sucesso associadas a um UploadId específico.