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
- Conta do S3 Storage ou outro serviço de armazenamento compatível com S3, como MinIO
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
- Um projeto do Google Cloud
- Um bucket, consulte a documentação oficial do Google Cloud: https://cloud.google.com/storage/docs/creating-buckets.
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:
- Vá para a página de contas de serviço: https://console.cloud.google.com/iam-admin/serviceaccounts
- Crie uma conta, insira um nome e continue.
- Na próxima etapa, selecione o papel de "Storage Object User". Você pode encontrá-lo usando o filtro.
- Depois de terminar de criar a conta, vá para a página de detalhes da conta e selecione a guia "keys".
- 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.