Todos os produtos
Search
Central de documentação

Object Storage Service:Use hierarchical namespace

Última atualização: Jul 03, 2026

O recurso de hierarchical namespace organiza objetos em uma hierarquia de diretórios e permite renomear diretórios e objetos de forma atômica, sem listar todos os objetos que compartilham um prefixo. Ao contrário do flat namespace padrão, que simula diretórios com barras (/), o hierarchical namespace melhora significativamente o desempenho do gerenciamento de diretórios.

Benefícios

  • Operações atômicas em diretórios

    Em um flat namespace, as aplicações podem precisar processar milhões de objetos para executar uma única tarefa no nível de diretório. Com o hierarchical namespace, a atualização de um diretório pai é uma operação atômica única que conclui várias tarefas de diretório simultaneamente.

  • Desempenho otimizado

    O hierarchical namespace elimina a necessidade de replicar ou converter dados antes da análise, o que melhora o desempenho do gerenciamento de diretórios. Esse aspecto é fundamental para frameworks de big data como Hive e Spark, que gravam resultados em diretórios temporários e os renomeiam após a conclusão da tarefa. Em um flat namespace, a renomeação frequentemente leva mais tempo do que a própria tarefa.

Procedimento

  1. Ative o hierarchical namespace.

    O hierarchical namespace só pode ser ativado durante a criação do bucket e não pode ser desativado posteriormente. Para obter mais informações sobre como ativar o hierarchical namespace, consulte Criar um bucket.

  2. Execute operações de diretório em um bucket com hierarchical namespace.

    A tabela a seguir lista os métodos para gerenciar diretórios em um bucket com hierarchical namespace.

    Método de implementação

    Descrição

    Console do OSS

    Console de gerenciamento baseado na web

    Java SDK

    Exemplos de código do SDK para operações de diretório

Observações de uso

  • Regiões compatíveis

    O hierarchical namespace está disponível apenas nas seguintes regiões: EUA (Silicon Valley), Japão (Tóquio), Reino Unido (Londres) e Malásia (Kuala Lumpur).

  • Criação de diretórios

    O nome de um diretório não pode conter barras consecutivas (/).

    Não é possível gravar dados em diretórios. O Content-Length de um diretório deve ser definido como 0.

    O Content-Type de um diretório deve ser definido como application/x-directory.

  • Renomeação de diretório ou objeto

    Um diretório ou objeto renomeado não pode ter o mesmo nome de um diretório ou objeto existente no mesmo bucket.

    O diretório pai no caminho de destino deve existir. Por exemplo, para renomear um diretório para destfolder/examplefolder/test, o diretório pai destfolder/examplefolder deve existir no bucket.

  • Exclusão de diretórios

    • Exclusão recursiva

      Exclui um diretório e todos os seus objetos e subdiretórios. Requer a permissão DeleteObject no diretório e em todo o seu conteúdo.

      Por exemplo, para excluir recursivamente dest/testfolder, é necessária a permissão DeleteObject em dest/testfolder e dest/testfolder/*.

      Importante

      Se uma solicitação de gravação simultânea tiver como alvo um diretório durante a exclusão recursiva, a exclusão poderá falhar.

    • Exclusão não recursiva

      Exclui apenas diretórios vazios. Requer a permissão DeleteObject no diretório de destino.

Recursos incompatíveis

A tabela a seguir lista os recursos incompatíveis com buckets com hierarchical namespace.

Categoria

Descrição

Recursos de bucket

  • Replicação entre regiões (CRR)

  • Versionamento

  • Inventário de bucket

  • Compartilhamento de recursos de origem cruzada (CORS)

  • Hospedagem de site estático

  • Regras de ciclo de vida

  • Políticas de retenção

  • Aceleração de transferência

Recursos de objeto

  • Links simbólicos

  • Upload de anexação

  • Lista de controle de acesso (ACL) e tags

  • Processamento de imagens (IMG)

  • Objetos Archive e Cold Archive

  • Callback

  • A operação RestoreObject

  • O cabeçalho x-oss-forbid-overwrite

  • O parâmetro response-content-* em solicitações GetObject para diretórios

  • Operações Live_Channel

  • A operação DeleteMultipleObjects

  • A operação SelectObject