Pular para o conteúdo principal

Configuração de blob storage

A seção de configuração BlobStorage define como a aplicação armazena e recupera arquivos.

Sistema de arquivos​

Armazena os arquivos no sistema de arquivos. Configurações disponíveis:

  • Path: o caminho em que os arquivos serão armazenados.

Exemplo (variáveis de ambiente):

BlobStorage__Type=FileSystem
BlobStorage__Path=/var/files/myapp

Exemplo (arquivo .ini ou .conf):

[BlobStorage]
Type=FileSystem
Path=/var/files/myapp

Exemplo (configuração JSON):

{
...,
"BlobStorage": {
"Type": "FileSystem"
"Path": "/var/files/myapp"
},
...
}

Azure Storage Account​

Armazena os arquivos em um container de uma conta de armazenamento do Azure (Azure Storage Account). Configurações disponíveis:

  • ConnectionString: a connection string da conta de armazenamento.
  • ContainerName: o nome do container em que os arquivos serão armazenados.

Exemplo (variáveis de ambiente):

BlobStorage__Type=Azure
BlobStorage__ConnectionString=DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey;EndpointSuffix=core.windows.net
BlobStorage__ContainerName=myapp-container

Exemplo (arquivo .ini ou .conf):

[BlobStorage]
Type=Azure
ConnectionString="DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey;EndpointSuffix=core.windows.net"
ContainerName=myapp-container

Exemplo (configuração JSON):

{
...
"BlobStorage": {
"Type": "Azure",
"ConnectionString": "DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey;EndpointSuffix=core.windows.net",
"ContainerName": "myapp-container"
},
...
}

AWS S3 (Simple Storage Service)​

Armazena os arquivos em um bucket do S3. Configurações disponíveis:

  • Region: a região do bucket.
  • BucketName: o nome do bucket em que os arquivos serão armazenados.
  • AccessKey: o ID da chave de acesso de um usuário do IAM que tenha acesso ao bucket.
  • SecretKey: a chave de acesso secreta de um usuário do IAM que tenha acesso ao bucket.

Exemplo (variáveis de ambiente):

BlobStorage__Type=AwsS3
BlobStorage__Region=us-east-1
BlobStorage__BucketName=myappbucket
BlobStorage__AccessKey=MYACCESSKEYID
BlobStorage__SecretKey=MYSECRETACCESSKEY

Exemplo (arquivo .ini ou .conf):

[BlobStorage]
Type=AwsS3
Region=us-east-1
BucketName=myappbucket
AccessKey=MYACCESSKEYID
SecretKey=MYSECRETACCESSKEY

Exemplo (configuração JSON):

{
...
"BlobStorage": {
"Type": "AwsS3",
"Region": "us-east-1",
"BucketName": "myappbucket",
"AccessKey": "MYACCESSKEYID",
"SecretKey": "MYSECRETACCESSKEY"
},
...
}

Armazenamento de objetos compatível com S3​

Também é possível usar um serviço auto-hospedado de armazenamento de objetos compatível com S3, conhecido como "clone do S3", como o minIO. Nesse caso, em vez de Region, especifique Endpoint.

Exemplo (variáveis de ambiente):

BlobStorage__Type=AwsS3
BlobStorage__Endpoint=http://localhost:9000
BlobStorage__BucketName=myappbucket
BlobStorage__AccessKey=MYACCESSKEYID
BlobStorage__SecretKey=MYSECRETACCESSKEY

Exemplo (arquivo .ini ou .conf):

[BlobStorage]
Type=AwsS3
Endpoint=http://localhost:9000
BucketName=myappbucket
AccessKey=MYACCESSKEYID
SecretKey=MYSECRETACCESSKEY

Exemplo (configuração JSON):

{
...
"BlobStorage": {
"Type": "AwsS3",
"Endpoint": "http://localhost:9000",
"BucketName": "myappbucket",
"AccessKey": "MYACCESSKEYID",
"SecretKey": "MYSECRETACCESSKEY"
},
...
}

Por padrão, quando um armazenamento compatível com S3 é configurado, é usado o endereçamento no estilo de caminho (path-style), em vez do endereçamento no estilo de host virtual (virtual-hosted–style), que é o padrão quando se configura um bucket comum do AWS S3. Isso pode ser alterado com a configuração ForcePathStyle (true ou false). Para mais informações sobre o endereçamento no S3, veja Virtual hosting of buckets.

Google Cloud Storage​

Armazena os arquivos em um bucket do Google Cloud Storage. Você precisará de uma conta de serviço com o role Storage Object Admin. Configurações disponíveis:

  • BucketName: o nome do bucket em que os arquivos serão armazenados.
  • ProjectId: o ID do projeto no Google Cloud.
  • PrivateKeyId: o ID da chave privada da conta de serviço.
  • PrivateKey: a chave privada da conta de serviço.
  • ClientEmail: o e-mail da conta de serviço.

Exemplo (variáveis de ambiente):

BlobStorage__Type=Gcp
BlobStorage__BucketName=myappbucket
BlobStorage__ProjecId=my-app-project-id
BlobStorage__PrivateKeyId=MYPRIVATEKEYID
BlobStorage__PrivateKey=MYPRIVATEKEY
BlobStorage__ClientEmail=myserviceaccountemail@my-app-project-id.iam.gserviceaccount.com

Exemplo (arquivo .ini ou .conf):

[BlobStorage]
Type=Gcp
BucketName=myappbucket
ProjecId=my-app-project-id
PrivateKeyId=MYPRIVATEKEYID
PrivateKey=MYPRIVATEKEY
ClientEmail=myserviceaccountemail@my-app-project-id.iam.gserviceaccount.com

Exemplo (configuração JSON):

{
...
"BlobStorage": {
"Type": "Gcp",
"BucketName": "myappbucket",
"ProjecId": "my-app-project-id",
"PrivateKeyId": "MYPRIVATEKEYID",
"PrivateKey": "MYPRIVATEKEY",
"ClientEmail": "myserviceaccountemail@my-app-project-id.iam.gserviceaccount.com"
},
...
}

Como obter as configurações do Google Cloud Storage​

Primeiro, você precisa de um bucket do Google Cloud Storage para armazenar os arquivos. Para criar um bucket, use o botão Create no console do Google Cloud Storage:

Passo 1

Escolha um nome para o novo bucket e clique em Continue:

Passo 2

Escolha a região do novo bucket:

Passo 3

Certifique-se de aplicar a prevenção do acesso público e o controle de acesso uniforme ao novo bucket:

Passo 4

Escolha a política de retenção de objetos e crie o bucket:

Passo 5

Pode aparecer um diálogo pedindo que você confirme que o acesso público será impedido. Clique em Confirm para continuar:

Passo 6

Em seguida, crie uma conta de serviço do Google Cloud para acessar o bucket. Para isso, use o botão Create service account na página Service Accounts, em IAM & Admin:

Passo 7

A nova conta de serviço também precisa de um nome. Escolha um e clique em Create and continue:

Passo 8

Certifique-se de que a nova conta de serviço receba o role Storage Object Admin:

Passo 9

Se necessário, conceda acesso a entidades de segurança (principals) e clique em Done para concluir a criação da conta de serviço:

Passo 10

Com a conta de serviço criada, é preciso uma chave para autenticá-la. Clique na nova conta de serviço para abrir a página de detalhes dela:

Passo 11

Nos detalhes da conta de serviço, vá para a seção Keys:

Passo 12

Na opção Add key, escolha Create new key:

Passo 13

Escolha o formato JSON e clique no botão Create:

Passo 14

Será baixado um arquivo JSON com a chave privada e outras informações da conta de serviço:

Passo 15

Nesse arquivo JSON, você encontra os campos project_id, private_key_id, private_key e client_email, usados para configurar o serviço de Blob Storage.

info

As informações deste arquivo JSON permitem acessar os recursos do GCP e não podem ser comprometidas! Guarde ou descarte o arquivo de forma segura.

Ver em Markdown