Skip to main content
Uma versão mais recente deste produto está disponível.
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.

Recomendações para implementar a API REST S3 com StorageGRID

Você deve seguir estas recomendações ao implementar a API REST para uso com StorageGRID.

Recomendações para HEADs para objetos inexistentes

Se sua aplicação verifica rotineiramente se um objeto existe em um caminho onde você não espera que ele exista, você deve usar a consistência "Disponível" "consistência". Por exemplo, você deve usar a consistência "Disponível" se sua aplicação executar um HEAD em um local antes de executar um PUT nele.

Caso contrário, se a operação HEAD não encontrar o objeto, você poderá receber um grande número de erros 500 Internal Server se dois ou mais nós de armazenamento no mesmo site estiverem indisponíveis ou se um local remoto estiver inacessível.

Você pode definir a consistência "Disponível" para cada bucket usando a "Consistência de PUT Bucket" solicitação, ou pode especificar a consistência no cabeçalho da solicitação para uma operação de API individual.

Recomendações para chaves de objeto

Siga estas recomendações para nomes de chaves de objetos, com base em quando o bucket foi criado pela primeira vez.

Buckets criados no StorageGRID 11.4 ou anterior
  • Não utilize valores aleatórios como os quatro primeiros caracteres das chaves de objetos. Isso contrasta com a recomendação anterior da AWS para prefixos de chave. Em vez disso, utilize prefixos não aleatórios e não exclusivos, como image.

  • Se você seguir a recomendação anterior da AWS de usar caracteres aleatórios e exclusivos nos prefixos das chaves, prefixe as chaves dos objetos com um nome de diretório. Ou seja, use este formato:

    mybucket/mydir/f8e3-image3132.jpg

    Em vez deste formato:

    mybucket/f8e3-image3132.jpg

Buckets criados no StorageGRID 11.4 ou posterior

Não é necessário restringir os nomes das chaves de objeto para atender às melhores práticas de desempenho. Na maioria dos casos, você pode usar valores aleatórios para os quatro primeiros caracteres dos nomes das chaves de objeto.

Dica Uma exceção a isso é uma carga de trabalho do S3 que remove continuamente todos os objetos após um curto período de tempo. Para minimizar o impacto no desempenho nesse caso de uso, varie a parte inicial do nome da chave a cada alguns milhares de objetos com algo como a data. Por exemplo, suponha que um cliente S3 normalmente grave 2.000 objetos por segundo e que a política de ciclo de vida do ILM ou do bucket remova todos os objetos após três dias. Para minimizar o impacto no desempenho, você pode nomear as chaves usando um padrão como este: /mybucket/mydir/yyyymmddhhmmss-random_UUID.jpg

Recomendações para "leituras de intervalo"

Se a "opção global para compactar objetos armazenados" estiver habilitada, os aplicativos cliente do S3 devem evitar realizar operações GetObject que especifiquem um intervalo de bytes a ser retornado. Essas operações de "leitura de intervalo" são ineficientes porque o StorageGRID precisa efetivamente descompactar os objetos para acessar os bytes solicitados. Operações GetObject que solicitam um pequeno intervalo de bytes de um objeto muito grande são especialmente ineficientes; por exemplo, é ineficiente ler um intervalo de 10 MB de um objeto compactado de 50 GB.

Se intervalos forem lidos de objetos compactados, as solicitações do cliente podem expirar.

Observação Se você precisar compactar objetos e seu aplicativo cliente precisar usar leituras de intervalo, aumente o tempo limite de leitura do aplicativo.