CopyObject
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).
|
|
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-metacabeç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
REPLACEpara 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
REPLACEpara 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-holdSe 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-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_REDUNDANCYEspecifica 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.
Se você estiver ingerindo um objeto em um bucket com o S3 Object Lock ativado, a REDUCED_REDUNDANCYopção será ignorada. Se você estiver ingerindo um objeto em um bucket compatível com legado, aREDUCED_REDUNDANCYopçã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-encryptioncabeçalho ou ox-amz-server-side-encryption-customer-algorithmcabeçalho, o StorageGRID rejeita a solicitação e retornaXNotImplemented. -
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: EspecificarAES256. -
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: EspecificarAES256. -
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.
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-encryptionO server-side-encryptionvalor do objeto não pode ser atualizado. Em vez disso, faça uma cópia com um novoserver-side-encryptionvalor usandox-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".