Esta documentação foi traduzida automaticamente por IA.
O upload de arquivos para campos de anexo e coleções de arquivos é suportado via API HTTP. O método de invocação difere dependendo do motor de armazenamento usado pelo campo de anexo ou pela coleção de arquivos.
Para motores de armazenamento de código aberto integrados ao projeto, como S3, OSS e COS, a chamada da API HTTP é a mesma função de upload da interface do usuário, e os arquivos são enviados via servidor. Para chamar a API, você precisa passar um token JWT baseado no login do usuário através do cabeçalho de requisição Authorization; caso contrário, o acesso será negado.
Inicie uma ação create no recurso de anexos (attachments), envie uma requisição POST e faça o upload do conteúdo binário através do campo file. Após a chamada, o arquivo será enviado para o motor de armazenamento padrão.
Para fazer o upload de um arquivo para um motor de armazenamento diferente, você pode usar o parâmetro attachmentField para especificar o motor de armazenamento configurado para o campo da coleção (se não configurado, ele será enviado para o motor de armazenamento padrão).
O upload para uma coleção de arquivos gerará automaticamente um registro de arquivo. Inicie uma ação create no recurso da coleção de arquivos, envie uma requisição POST e faça o upload do conteúdo binário através do campo file.
Ao fazer o upload para uma coleção de arquivos, não é necessário especificar um motor de armazenamento; o arquivo será enviado para o motor de armazenamento configurado para aquela coleção.
Para motores de armazenamento compatíveis com S3, fornecidos através do plugin comercial S3-Pro, o upload via API HTTP precisa ser chamado em várias etapas.
Obter Informações do Motor de Armazenamento
Inicie uma ação getBasicInfo na coleção de armazenamentos (storages), incluindo o nome do armazenamento, para solicitar as informações de configuração do motor de armazenamento.
Exemplo de informações de configuração do motor de armazenamento retornadas:
Obter Informações Pré-assinadas do Provedor de Serviço
Inicie uma ação createPresignedUrl no recurso fileStorageS3, envie uma requisição POST e inclua informações relacionadas ao arquivo no corpo (body) para obter as informações de upload pré-assinadas.
Observação:
- name: Nome do arquivo
- size: Tamanho do arquivo (em bytes)
- type: O tipo MIME do arquivo. Você pode consultar: Tipos MIME comuns
- storageId: O ID do motor de armazenamento (o campo
idretornado na primeira etapa)- storageType: O tipo do motor de armazenamento (o campo
typeretornado na primeira etapa)Exemplo de dados da requisição:
A estrutura de dados das informações pré-assinadas obtidas é a seguinte:
Upload do Arquivo
Use o putUrl retornado para iniciar uma requisição PUT e fazer o upload do arquivo como corpo (body).
Observação:
- putUrl: O campo
putUrlretornado na etapa anterior- file_path: O caminho local do arquivo a ser enviado
Exemplo de dados da requisição:
Criar Registro de Arquivo
Após um upload bem-sucedido, inicie uma ação create no recurso de anexos (attachments), enviando uma requisição POST para criar o registro do arquivo.
Descrição dos dados dependentes em data-raw:
- title: O campo
fileInfo.titleretornado na etapa anterior- filename: O campo
fileInfo.keyretornado na etapa anterior- extname: O campo
fileInfo.extnameretornado na etapa anterior- path: Vazio por padrão
- size: O campo
fileInfo.sizeretornado na etapa anterior- url: Vazio por padrão
- mimetype: O campo
fileInfo.mimetyperetornado na etapa anterior- meta: O campo
fileInfo.metaretornado na etapa anterior- storageId: O campo
idretornado na primeira etapaExemplo de dados da requisição:
As três primeiras etapas são as mesmas do upload de campos de anexo, mas na quarta etapa, você precisa criar um registro de arquivo, iniciando uma ação create no recurso da coleção de arquivos, enviando uma requisição POST e fazendo o upload das informações do arquivo via corpo (body).
Descrição dos dados dependentes em data-raw:
- title: O campo
fileInfo.titleretornado na etapa anterior- filename: O campo
fileInfo.keyretornado na etapa anterior- extname: O campo
fileInfo.extnameretornado na etapa anterior- path: Vazio por padrão
- size: O campo
fileInfo.sizeretornado na etapa anterior- url: Vazio por padrão
- mimetype: O campo
fileInfo.mimetyperetornado na etapa anterior- meta: O campo
fileInfo.metaretornado na etapa anterior- storageId: O campo
idretornado na primeira etapaExemplo de dados da requisição: