Pular para o conteúdo principal

Provedor de armazenamento de arquivos

Por padrão, o Logto Console usa uma entrada de texto para URLs de arquivos estáticos, como avatares. Para habilitar uma experiência de upload de arquivos mais intuitiva com arrastar e soltar, você precisa configurar um provedor de armazenamento.

Logto suporta múltiplos provedores de armazenamento, incluindo AWS S3 e Azure Storage. Esta receita mostrará como configurar um provedor de armazenamento para o Logto.

A configuração é armazenada na tabela systems do DB, mas é recomendado usar o CLI para configurar o provedor de armazenamento. Para mais informações, experimente o comando "help":

pnpm logto db system --help

Azure Storage

Azure Storage é uma solução de armazenamento em nuvem poderosa e escalável que permite armazenar e gerenciar seus dados na nuvem. A receita a seguir mostrará como configurar o Azure Storage como um provedor de armazenamento para o Logto.

Pré-requisitos

Configuração usando CLI

Exemplo de uso:

pnpm logto db system set storageProvider '{"provider":"AzureStorage","connectionString":"DefaultEndpointsProtocol=https;AccountName=logto;AccountKey=oRhfTBHOHiBxxxxxxxxxxxxxxxxZ0se6XROftl/Xrow==;EndpointSuffix=core.windows.net","container":"logto"}'

connectionString

Para acessar o Azure Storage, você precisa usar uma string de conexão, que é uma sequência de caracteres que contém as informações necessárias para estabelecer uma conexão com sua conta de armazenamento.

Para obter a string de conexão, siga a documentação oficial Azure Storage connection string documentation.

container

O container é um recurso de armazenamento que armazena blobs. Você pode usar o container para organizar seus blobs e controlar o acesso aos seus dados.

Para criar um container, siga a documentação oficial Azure Storage container documentation.

publicUrl

Opcional.

A URL pública é a URL que pode ser usada para acessar o recurso de armazenamento publicamente. Se você não estiver usando CDN, pode deixá-la em branco para usar o "Ponto de extremidade primário" padrão do Azure Storage como a URL pública. Logto obterá esse valor de "connectionString" com a ajuda do Azure SDK. Para saber mais sobre o ponto de extremidade primário da sua conta de armazenamento, siga a documentação oficial Azure Storage primary endpoint documentation.

S3 Storage

S3 Storage é um serviço de armazenamento em nuvem que oferece armazenamento de objetos através de uma interface de serviço web. A receita a seguir mostrará como configurar o S3 Storage como um provedor de armazenamento para o Logto.

Pré-requisitos

Configuração usando CLI

Exemplo de uso:

pnpm logto db system set storageProvider '{"provider":"S3Storage","accessKeyId":"my-access-key-id","accessSecretKey": "my-secret-access-key","bucket":"logto","endpoint":"https://s3.us-east-2.amazonaws.com"}'

accessKeyId

O ID da chave de acesso é um identificador para sua conta AWS. Para encontrar seu ID de chave de acesso para sua conta AWS, siga a documentação oficial AWS access key ID documentation.

accessSecretKey

A chave de acesso secreta é usada em conjunto com o ID da chave de acesso para assinar solicitações programáticas. Para encontrar sua chave de acesso secreta para sua conta AWS, siga a documentação oficial AWS access key secret documentation.

bucket

O bucket é um container para objetos armazenados no Amazon S3. Para criar um bucket, siga a documentação oficial AWS S3 bucket documentation.

region

Opcional.

A região é a região geográfica onde o bucket AWS S3 está localizado. Se endpoint for um endpoint padrão do AWS S3, ele pode ser analisado a partir de endpoint. Para encontrar sua região AWS S3, siga a documentação oficial AWS S3 region documentation.

Se você estiver usando um serviço de armazenamento compatível com S3, pode deixar este campo em branco.

endpoint

Opcional.

O endpoint é a URL usada para acessar o serviço AWS S3. Para encontrar seu endpoint AWS S3, siga a documentação oficial AWS S3 endpoint documentation.

Você pode deixar este campo em branco para usar o endpoint padrão para a região. Se você estiver usando um serviço de armazenamento compatível com S3, pode usar o endpoint do serviço.

publicUrl

Opcional.

A URL pública é a URL que pode ser usada para acessar o recurso de armazenamento publicamente. Se você não estiver usando CDN, pode deixá-la em branco para usar a URL padrão do S3 Storage.

Google Cloud Storage

Google Cloud Storage é um serviço de armazenamento em nuvem que fornece armazenamento de objetos através de uma interface de serviço web. O guia a seguir mostrará como configurar o Google Cloud Storage como um provedor de armazenamento para o Logto.

Pré-requisitos

Obter o arquivo de chave

Os SDKs do Google Cloud geralmente usam um "arquivo de chave". Se você não estiver familiarizado com o Google Cloud, esta pode ser a parte mais desafiadora. Veja como obtê-lo:

  1. Vá para a página de contas de serviço: https://console.cloud.google.com/iam-admin/serviceaccounts
  2. Crie uma conta, insira um nome e continue.
  3. Na próxima etapa, selecione o papel de "Storage Object User". Você pode encontrá-lo usando o filtro.
  4. Depois de terminar de criar a conta, vá para a página de detalhes da conta e selecione a guia "keys".
  5. Clique em "add key", selecione "create a new key", escolha "json" no diálogo e, em seguida, baixe seu arquivo json.

Adicionar o arquivo de chave ao Logto

Logto deve ter acesso ao arquivo de chave.

Executando no Node.js

Copie o arquivo para /path/to/logto/core e renomeie-o para google-storage-key.json.

Executando em um Container Docker

Se você estiver executando o Logto em um container Docker, precisará montar o arquivo no container. Supondo que você esteja usando o Docker Compose, adicione isso à sua configuração:

volumes:
- ./path/to/google-storage-key.json:/etc/logto/core/google-storage-key.json

Lembre-se de substituir /path/to pelo caminho real.

Configuração usando CLI

Exemplo de uso:

pnpm logto db system set storageProvider '{"provider":"GoogleStorage","projectId":"psychic-trainer-403801","keyFilename":"google-storage-key.json","bucketName":"logto-test2"}'

projectId

Seu ID de projeto do Google Cloud.

keyFilename

O nome do arquivo de chave, se você seguir os passos acima, então é google-storage-key.json.

bucketName

O nome do bucket.

publicUrl

Opcional.

A URL pública é a URL que pode ser usada para acessar o recurso de armazenamento publicamente. Se você não estiver usando CDN, pode deixá-la em branco para usar a URL padrão do S3 Storage.