Quero entender o efeito dos prefixos e das pastas aninhadas nas taxas de solicitação do Amazon Simple Storage Service (Amazon S3).
Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use prefixos para lidar com aumentos nas taxas de solicitação para seus buckets do Amazon S3. O console do Amazon S3 apresenta prefixos como pastas e pode não mostrar prefixos particionados que ofereçam suporte a taxas de solicitação. Para obter mais informações, consulte Organizar, listar e trabalhar com seus objetos.
Prefixos
Um prefixo de chave é uma string de caracteres no início do nome do objeto. O comprimento do prefixo pode ser, no máximo, 1.024 bytes do nome da chave do objeto. Por exemplo, os seguintes objetos no bucket "BucketName" compartilham os prefixos comuns "Project/", "Project/WordFiles/", "Project/WordFiles/1" e "Project/WordFiles/4":
BucketName/Project/WordFiles/123.txt
BucketName/Project/WordFiles/145.txt
BucketName/Project/WordFiles/456.txt
BucketName/Project/WordFiles/489.txt
É possível organizar prefixos hierarquicamente com delimitadores. É possível usar uma barra (/) ou qualquer outro caractere como delimitador. O Amazon S3 pode criar partições automaticamente em qualquer ponto da string do prefixo com base na taxa de solicitação sustentada. Elas também são chamadas de prefixos particionados. Um prefixo particionado em um bucket pode suportar 3.500 solicitações PUT/COPY/POST/DELETE ou 5.500 solicitações GET/HEAD por segundo.
Não há limite para o número de prefixos que é possível ter em um bucket. Para obter mais informações sobre como usar prefixos no Amazon S3, consulte Organizar objetos usando prefixos.
Pastas
Os buckets de uso geral do Amazon S3 têm uma estrutura plana em vez de uma hierarquia, como poderia ser visto em um sistema de arquivos. No entanto, para agrupar e exibir objetos para navegação, o console do Amazon S3 oferece suporte ao conceito de pasta.
Quando você cria uma pasta no console do Amazon S3, o Amazon S3 cria um objeto de 0 bytes. O objeto tem uma chave definida para o nome da pasta e um caractere de barra (/) à direita. Por exemplo, se você criar uma pasta chamada "photos" por meio do console Amazon S3, ela criará um objeto de 0 bytes com a chave photos/. O console cria esse objeto para dar suporte ao conceito de pasta. Como essas pastas criadas pelo console são objetos reais, a API head-object retorna uma resposta bem-sucedida.
Qualquer objeto com uma barra à direita (/) em seu nome de chave aparece como uma pasta no console do Amazon S3. Por exemplo, um objeto com o nome de chave examplekeyname/ aparece como uma pasta no console e não como um objeto.
Uma pasta é o valor entre dois caracteres de barra (/). Por exemplo, se você armazenar um arquivo como BucketName/Project/WordFiles/123.txt, então Project e WordFiles são pastas. Se você salvar o arquivo 123.txt na raiz do bucket sem um caminho especificado, o Amazon S3 não usará pastas para armazenar o arquivo.
Observação: o console do Amazon S3 usa somente uma barra (/) como delimitador da estrutura de pastas. Outros caracteres, como "-", são tratados como parte do nome da chave do objeto e não criam pastas.
Observação: comandos da AWS CLI e do SDK, como aws s3 cp, não criam objetos de pasta. Eles só criam os objetos de arquivo com o caminho completo da chave, sem nenhum objeto de pasta intermediário. Portanto, a API head-object retorna um erro "NoSuchKey" quando você tenta acessar chaves de pasta inexistentes.