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 onde 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 Azure Storage Account. Configurações disponíveis:
- ConnectionString: a connection string da conta de armazenamento.
- ContainerName: o nome do container onde 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 onde os arquivos serão armazenados.
- AccessKey: o ID da chave de acesso de um usuário IAM com acesso ao bucket.
- SecretKey: a chave de acesso secreta de um usuário IAM com 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 de armazenamento de objetos compatível com S3 auto-hospedado, também conhecido como "clone do S3", por exemplo o minIO. Nesse caso, em vez da Region, especifique o 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, usa-se 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 um bucket do AWS S3 comum é configurado. Isso pode ser alterado com a configuração ForcePathStyle (true ou false). Para mais
informações sobre o endereçamento do S3, consulte 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 papel Storage Object Admin. Configurações disponíveis:
- BucketName: o nome do bucket onde os arquivos serão armazenados.
- ProjectId: o ID do projeto do 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"
},
...
}
Obtendo as configurações do Google Cloud Storage
Primeiro, é preciso um bucket do Google Cloud Storage para armazenar os arquivos. Para criar um novo bucket, use o botão Create do console do Google Cloud Storage:

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

Escolha a região do novo bucket:

Certifique-se de aplicar a prevenção de 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 para confirmar que o acesso público será impedido. Clique em confirmar para continuar:

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

Também é preciso um nome para a nova conta de serviço. Escolha-o e clique em Create and continue:

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

Conceda acesso a entidades de segurança (principals), se necessário, e clique em concluir para terminar a criação da nova 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:

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

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:

No arquivo JSON, você encontra os campos project_id, private_key_id, private_key e client_email para configurar o serviço de Blob Storage.
As informações deste arquivo JSON dão acesso aos recursos do GCP e não podem ser comprometidas! Armazene ou descarte o arquivo de forma segura.