Configuração do Blob Storage
A seção de configuração BlobStorage define como uma 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 uma Azure Storage Account. Configurações disponíveis:
- ConnectionString: a connection string da Storage Account.
- 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 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 de armazenamento de objetos compatível com S3 hospedado por você, também conhecido como "clone do S3", por exemplo o minIO. Nesse caso, em vez de 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, é usado o endereçamento no estilo de caminho (path-style), em vez do endereçamento padrão no estilo de host virtual
(virtual-hosted–style) usado quando um bucket padrão do AWS S3 é configurado. Isso pode ser alterado com a configuração ForcePathStyle (true ou false). Para mais informações sobre o endereçamento do 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 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, precisamos de um bucket do Google Cloud Storage para armazenar os arquivos. Um novo bucket pode ser criado pelo botão Create no console do Google Cloud Storage:

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

Escolha a região do novo bucket:

Garanta que a prevenção de acesso público e o controle de acesso uniforme estejam aplicados 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, precisamos criar uma conta de serviço do Google Cloud para acessar o bucket. Isso pode ser feito pelo botão Create service account na página Service Accounts, em IAM & Admin:

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

Garanta que a nova conta de serviço receba o papel Storage Object Admin:

Conceda acesso a principals, se necessário, e clique em concluir para finalizar a criação da nova conta de serviço:

Agora que a conta de serviço foi criada, precisamos de 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 contendo a chave privada e outras informações relacionadas à conta de serviço:

No arquivo JSON, você encontrará 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 permitem acessar os recursos do GCP e não podem ser comprometidas! Armazene ou descarte o arquivo com segurança.