Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Desenvolvimento de Extensões
Estendendo motores de armazenamento
Lado do servidor
-
Herdar
StorageTypeCrie uma nova classe e implemente os métodos
make()edelete(). Se necessário, sobrescreva hooks comogetFileURL(),getFileStream()egetFileData().
Exemplo:
- Registrar o novo tipo
Injete a nova implementação de armazenamento no ciclo de vidabeforeLoadouloaddo plugin:
Após o registro, a configuração de armazenamento aparecerá no recurso storages, assim como os tipos integrados. A configuração fornecida por StorageType.defaults() pode ser usada para preencher formulários automaticamente ou inicializar registros padrão.
Estendendo tipos de arquivos no frontend
Para arquivos já enviados, você pode exibir diferentes conteúdos de pré-visualização na interface do frontend com base no tipo de arquivo. O campo de anexos do gerenciador de arquivos possui uma pré-visualização baseada no navegador (embutida em um iframe), que suporta a visualização da maioria dos formatos (como imagens, vídeos, áudio e PDFs) diretamente no navegador. Quando um formato de arquivo não é suportado pelo navegador ou quando interações especiais de pré-visualização são necessárias, você pode estender o componente de pré-visualização baseado no tipo de arquivo.
Exemplo
Por exemplo, se você deseja integrar uma pré-visualização online personalizada para arquivos Office, pode usar o seguinte código:
Aqui, filePreviewTypes é o objeto de entrada fornecido por @nocobase/plugin-file-manager/client para estender pré-visualizações de arquivos. Use seu método add para adicionar um objeto descritor de tipo de arquivo.
Cada tipo de arquivo deve implementar um método match() para verificar se o tipo atende aos requisitos. No exemplo, matchMimetype é usado para verificar o atributo mimetype do arquivo. Se corresponder ao tipo docx, ele é considerado o tipo a ser tratado. Se não corresponder, será usada a lógica integrada.
A propriedade Previewer no objeto descritor de tipo é o componente usado para pré-visualização. Quando o tipo de arquivo corresponde, esse componente é renderizado na caixa de diálogo de pré-visualização. Você pode retornar qualquer visualização React (como iframe, player ou gráfico).
API
filePreviewTypes
filePreviewTypes é uma instância global importada de @nocobase/plugin-file-manager/client:
filePreviewTypes.add()
Registra um novo objeto descritor de tipo de arquivo no registro de tipos. O tipo do descritor é FilePreviewType.
FilePreviewType
match()
Método de correspondência de formato de arquivo.
O parâmetro de entrada file é o objeto de dados de um arquivo enviado, contendo propriedades relevantes para verificação de tipo:
mimetype: descrição do mimetypeextname: extensão do arquivo, incluindo "."path: caminho de armazenamento relativo do arquivourl: URL do arquivo
Retorna um boolean indicando se houve correspondência.
getThumbnailURL
Retorna a URL da miniatura usada na lista de arquivos. Se o valor retornado for vazio, a imagem de placeholder integrada será usada.
Previewer
Um componente React para pré-visualizar arquivos.
As props de entrada são:
file: objeto do arquivo atual (pode ser uma URL em string ou um objeto contendourl/preview)index: índice do arquivo na listalist: lista de arquivos

