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 a implementação da API Swift REST

Colaboradores

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

Recomendações para heads to non-existent objects

Se seu aplicativo verifica rotineiramente para ver se um objeto existe em um caminho onde você não espera que o objeto realmente exista, você deve usar o controle de consistência ""disponível"". Por exemplo, você deve usar o controle de consistência "disponível" se seu aplicativo executar uma operação DE CABEÇA para um local antes de executar uma OPERAÇÃO DE COLOCAÇÃO nesse local.

Caso contrário, se a operação PRINCIPAL não encontrar o objeto, você poderá receber um número alto de 500 erros de servidor interno se um ou mais nós de storage não estiverem disponíveis.

Você pode definir o controle de consistência "disponível" para cada recipiente usando o pedido de consistência de contentor PUT.

Recomendações para nomes de objetos

Você não deve usar valores aleatórios como os primeiros quatro carateres de nomes de objetos. Em vez disso, você deve usar prefixos não aleatórios, não exclusivos, como imagem.

Se você precisar usar carateres aleatórios e exclusivos em prefixos de nome de objeto, você deve prefixar os nomes de objeto com um nome de diretório. Ou seja, use este formato:

mycontainer/mydir/f8e3-image3132.jpg

Em vez deste formato:

mycontainer/f8e3-image3132.jpg

Recomendações para "leituras de intervalo"

Se a opção Compress Stored Objects estiver selecionada (Configuration System Settings Grid Options), os aplicativos cliente Swift devem evitar executar operações de objeto GET que especificam um intervalo de bytes que serão retornados. Essas operações de leitura de intervalo são ineficientes porque o StorageGRID deve descompactar efetivamente os objetos para acessar os bytes solicitados. As operações GET Object que solicitam um pequeno intervalo de bytes de um objeto muito grande são especialmente ineficientes; por exemplo, é muito ineficiente ler um intervalo de 10 MB de um objeto compactado de 50 GB.

Se os intervalos forem lidos a partir de objetos compatados, 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 para o aplicativo.