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:

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

Escolha a região do novo bucket:

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

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

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

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:

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

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

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:

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:

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

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

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

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

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.
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.