Esta documentação foi traduzida automaticamente por IA.
O upload de arquivos para campos de anexo e coleções de arquivos pode ser feito via API HTTP. A forma de invocação difere dependendo do motor de armazenamento usado pelo anexo ou pela coleção de arquivos.
Para motores de armazenamento de código aberto integrados, como S3, OSS e COS, a chamada da API HTTP é a mesma usada pelo recurso de upload da interface do usuário, onde os arquivos são enviados pelo servidor. As chamadas da API exigem que um token JWT baseado no login do usuário seja passado no cabeçalho Authorization; caso contrário, o acesso será negado.
Inicie uma ação create no recurso de anexos (attachments) enviando 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 arquivos 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 for configurado, o arquivo 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 enviando 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 requer vários passos.
Obter informações do motor de armazenamento
Inicie uma ação getBasicInfo na coleção de armazenamentos (storages), incluindo o nome do armazenamento (storage name), 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 a URL pré-assinada do provedor de serviço
Inicie uma ação createPresignedUrl no recurso fileStorageS3 enviando uma requisição POST com informações relacionadas ao arquivo no corpo para obter as informações de upload pré-assinadas.
Observação:
name: Nome do arquivosize: Tamanho do arquivo (em bytes)type: O tipo MIME do arquivo. Você pode consultar: Tipos MIME comunsstorageId: O ID do motor de armazenamento (o campoidretornado na etapa 1).storageType: O tipo do motor de armazenamento (o campotyperetornado na etapa 1).Exemplo de dados da requisição:
A estrutura de dados das informações pré-assinadas obtidas é a seguinte:
Upload do arquivo
Use a putUrl retornada para fazer uma requisição PUT, enviando o arquivo como corpo da requisição.
Observação:
putUrl: O campoputUrlretornado na etapa anterior.file_path: O caminho local do arquivo a ser enviado.Exemplo de dados da requisição:
Criar o registro do arquivo
Após um upload bem-sucedido, crie o registro do arquivo iniciando uma ação create no recurso de anexos (attachments) com uma requisição POST.
Explicação dos dados dependentes em
data-raw:
title: O campofileInfo.titleretornado na etapa anterior.filename: O campofileInfo.keyretornado na etapa anterior.extname: O campofileInfo.extnameretornado na etapa anterior.path: Vazio por padrão.size: O campofileInfo.sizeretornado na etapa anterior.url: Vazio por padrão.mimetype: O campofileInfo.mimetyperetornado na etapa anterior.meta: O campofileInfo.metaretornado na etapa anterior.storageId: O campoidretornado na etapa 1.Exemplo de dados da requisição:
As três primeiras etapas são as mesmas do upload para um campo de anexo. No entanto, na quarta etapa, você precisa criar o registro do arquivo iniciando uma ação create no recurso da coleção de arquivos com uma requisição POST, enviando as informações do arquivo no corpo.
Explicação dos dados dependentes em
data-raw:
title: O campofileInfo.titleretornado na etapa anterior.filename: O campofileInfo.keyretornado na etapa anterior.extname: O campofileInfo.extnameretornado na etapa anterior.path: Vazio por padrão.size: O campofileInfo.sizeretornado na etapa anterior.url: Vazio por padrão.mimetype: O campofileInfo.mimetyperetornado na etapa anterior.meta: O campofileInfo.metaretornado na etapa anterior.storageId: O campoidretornado na etapa 1.Exemplo de dados da requisição: