Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

CopyObject

Colaboradores

Você pode usar a solicitação S3 CopyObject para criar uma cópia de um objeto que já está armazenado no S3. Uma operação CopyObject é a mesma que executar GetObject seguido por PutObject.

Resolver conflitos

As solicitações de cliente conflitantes, como dois clientes escrevendo para a mesma chave, são resolvidas com base em "vitórias mais recentes". O tempo para a avaliação "últimos ganhos" é baseado em quando o sistema StorageGRID completa uma determinada solicitação e não em quando os clientes S3 começam uma operação.

Tamanho do objeto

O tamanho máximo recomendado para uma única operação PutObject é de 5 GiB (5.368.709.120 bytes). Se você tiver objetos maiores que 5 GiB, use "carregamento multipart" em vez disso.

O tamanho máximo suportado para uma única operação PutObject é de 5 TIB (5.497.558.138.880 bytes).

Observação Se você atualizou do StorageGRID 11,6 ou anterior, o alerta COLOCAR tamanho do objeto muito grande S3 será acionado se você tentar carregar um objeto que exceda 5 GiB. Se você tiver uma nova instalação do StorageGRID 11,7 ou 11,8, o alerta não será acionado neste caso. No entanto, para se alinhar com o padrão AWS S3, futuras versões do StorageGRID não suportarão uploads de objetos maiores que 5 GiB.

UTF-8 carateres em metadados do usuário

Se uma solicitação incluir valores UTF-8 (não escapados) no nome da chave ou valor dos metadados definidos pelo usuário, o comportamento do StorageGRID é indefinido.

O StorageGRID não analisa nem interpreta carateres UTF-8 escapados incluídos no nome da chave ou no valor dos metadados definidos pelo usuário. Os carateres UTF-8 escapados são tratados como carateres ASCII:

  • As solicitações são bem-sucedidas se os metadados definidos pelo usuário incluírem carateres UTF-8 escapados.

  • O StorageGRID não retorna o x-amz-missing-meta cabeçalho se o valor interpretado do nome ou valor da chave incluir carateres não imprimíveis.

Cabeçalhos de solicitação suportados

Os seguintes cabeçalhos de solicitação são suportados:

  • Content-Type

  • x-amz-copy-source

  • x-amz-copy-source-if-match

  • x-amz-copy-source-if-none-match

  • x-amz-copy-source-if-unmodified-since

  • x-amz-copy-source-if-modified-since

  • x-amz-meta-, seguido por um par de nome-valor contendo metadados definidos pelo usuário

  • x-amz-metadata-directive: O valor padrão é COPY, que permite copiar o objeto e os metadados associados.

    Você pode especificar REPLACE para substituir os metadados existentes ao copiar o objeto ou para atualizar os metadados do objeto.

  • x-amz-storage-class

  • x-amz-tagging-directive: O valor padrão é COPY, que permite copiar o objeto e todas as tags.

    Você pode especificar REPLACE para substituir as tags existentes ao copiar o objeto ou para atualizar as tags.

  • S3 cabeçalhos de solicitação de bloqueio de objetos:

    • x-amz-object-lock-mode

    • x-amz-object-lock-retain-until-date

    • x-amz-object-lock-legal-hold

      Se uma solicitação for feita sem esses cabeçalhos, as configurações de retenção padrão do intervalo serão usadas para calcular o modo de versão do objeto e manter até a data. "Use a API REST do S3 para configurar o bloqueio de objetos do S3"Consulte .

  • Cabeçalhos de pedido SSE:

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm

    • x-amz-copy-source​-server-side-encryption-customer-key

    • x-amz-copy-source​-server-side-encryption-customer-key-MD5

    • x-amz-server-side-encryption

    • x-amz-server-side-encryption-customer-key-MD5

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-algorithm

Cabeçalhos de solicitação não suportados

Os seguintes cabeçalhos de solicitação não são suportados:

  • Cache-Control

  • Content-Disposition

  • Content-Encoding

  • Content-Language

  • Expires

  • x-amz-checksum-algorithm

    Quando você copia um objeto, se o objeto de origem tiver um checksum, o StorageGRID não copia esse valor de checksum para o novo objeto. Esse comportamento se aplica se você tentar ou não x-amz-checksum-algorithm usar na solicitação de objeto.

  • x-amz-website-redirect-location

Opções de classe de armazenamento

O x-amz-storage-class cabeçalho de solicitação é suportado e afeta quantas cópias de objeto criadas pelo StorageGRID se a regra ILM correspondente usar o compromisso duplo ou equilibrado "opção de ingestão".

  • STANDARD

    (Padrão) especifica uma operação de ingestão de commit duplo quando a regra ILM usa a opção de commit duplo ou quando a opção Balanced retorna à criação de cópias provisórias.

  • REDUCED_REDUNDANCY

    Especifica uma operação de ingestão de commit único quando a regra ILM usa a opção de commit duplo ou quando a opção Balanced retorna à criação de cópias provisórias.

    Observação Se você estiver ingerindo um objeto em um bucket com o S3 Object Lock ativado, a REDUCED_REDUNDANCY opção será ignorada. Se você estiver ingerindo um objeto em um bucket compatível com legado, a REDUCED_REDUNDANCY opção retornará um erro. A StorageGRID sempre realizará uma ingestão de confirmação dupla para garantir que os requisitos de conformidade sejam atendidos.

Usando x-amz-copy-source em CopyObject

Se o intervalo de origem e a chave, especificados no x-amz-copy-source cabeçalho, forem diferentes do intervalo de destino e da chave, uma cópia dos dados do objeto de origem será gravada no destino.

Se a origem e o destino corresponderem e o x-amz-metadata-directive cabeçalho for especificado como REPLACE, os metadados do objeto serão atualizados com os valores de metadados fornecidos na solicitação. Nesse caso, o StorageGRID não reingere o objeto. Isto tem duas consequências importantes:

  • Não é possível usar CopyObject para criptografar um objeto existente no local ou para alterar a criptografia de um objeto existente no local. Se você fornecer o x-amz-server-side-encryption cabeçalho ou o x-amz-server-side-encryption-customer-algorithm cabeçalho, o StorageGRID rejeita a solicitação e retorna XNotImplemented.

  • A opção de comportamento de ingestão especificada na regra ILM correspondente não é usada. Quaisquer alterações no posicionamento de objetos que são acionadas pela atualização são feitas quando o ILM é reavaliado por processos normais de ILM em segundo plano.

    Isso significa que se a regra ILM usar a opção estrita para o comportamento de ingestão, nenhuma ação será tomada se os posicionamentos de objeto necessários não puderem ser feitos (por exemplo, porque um local recém-exigido não está disponível). O objeto atualizado mantém seu posicionamento atual até que o posicionamento necessário seja possível.

Cabeçalhos de solicitação para criptografia do lado do servidor

Se "use a criptografia do lado do servidor"você , os cabeçalhos de solicitação fornecidos dependem se o objeto de origem está criptografado e se você planeja criptografar o objeto de destino.

  • Se o objeto de origem for criptografado usando uma chave fornecida pelo cliente (SSE-C), você deve incluir os três cabeçalhos a seguir na solicitação CopyObject, para que o objeto possa ser descriptografado e copiado:

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm: Especificar AES256.

    • x-amz-copy-source​-server-side-encryption-customer-key: Especifique a chave de criptografia fornecida quando você criou o objeto de origem.

    • x-amz-copy-source​-server-side-encryption-customer-key-MD5: Especifique o resumo MD5 que você forneceu quando criou o objeto de origem.

  • Se você quiser criptografar o objeto de destino (a cópia) com uma chave exclusiva que você fornece e gerencia, inclua os três cabeçalhos a seguir:

    • x-amz-server-side-encryption-customer-algorithm: Especificar AES256.

    • x-amz-server-side-encryption-customer-key: Especifique uma nova chave de criptografia para o objeto de destino.

    • x-amz-server-side-encryption-customer-key-MD5: Especifique o resumo MD5 da nova chave de criptografia.

    Cuidado As chaves de criptografia que você fornece nunca são armazenadas. Se você perder uma chave de criptografia, perderá o objeto correspondente. Antes de usar chaves fornecidas pelo cliente para proteger os dados do objeto, revise as considerações para "usando criptografia do lado do servidor".
  • Se você quiser criptografar o objeto de destino (a cópia) com uma chave exclusiva gerenciada pelo StorageGRID (SSE), inclua esse cabeçalho na solicitação de CopyObject:

    • x-amz-server-side-encryption

      Observação O server-side-encryption valor do objeto não pode ser atualizado. Em vez disso, faça uma cópia com um novo server-side-encryption valor usando x-amz-metadata-directive: REPLACE.

Controle de versão

Se o bucket de origem for versionado, você pode usar o x-amz-copy-source cabeçalho para copiar a versão mais recente de um objeto. Para copiar uma versão específica de um objeto, você deve especificar explicitamente a versão a ser copiada usando o versionId subrecurso. Se o intervalo de destino for versionado, a versão gerada será retornada x-amz-version-id no cabeçalho de resposta. Se o controle de versão estiver suspenso para o bucket de destino, x-amz-version-id retorna um valor "nulo".