Usando ARNs do ponto de acesso S3 no AWS SDK for PHP versão 3 - AWS SDK for PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando ARNs do ponto de acesso S3 no AWS SDK for PHP versão 3

O S3 incluiu pontos de acesso, uma nova maneira de interagir com buckets do S3. Os pontos de acesso podem ter políticas e configurações exclusivas aplicadas a eles, em vez de diretamente ao bucket. O AWS SDK for PHP permite que você use ARNs de ponto de acesso no campo do bucket para operações de API em vez de especificar explicitamente o nome do bucket. Mais detalhes sobre como os pontos de acesso do S3 e os ARNs funcionam podem ser encontrados aqui. Os exemplos a seguir mostram como:

  • Use GetObjectcom um ARN de ponto de acesso para buscar um objeto de um bucket.

  • Use PutObjectcom um ARN de ponto de acesso para adicionar um objeto a um bucket.

  • Configurar o cliente do S3 para usar a região do ARN em vez da região do cliente.

Todo o código de exemplo do AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Credenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito em Uso básico.

Importações

require 'vendor/autoload.php'; use Aws\S3\S3Client;

Objeto Get

Primeiro crie um serviço cliente do AWS.S3 que especifique a região e a versão da AWS. Depois, chame o método getObject com sua chave e um ARN de ponto de acesso do S3 no campo Bucket, que obterá o objeto do bucket associado a esse ponto de acesso.

Código de exemplo

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->getObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey' ]);

Colocar um objeto em um bucket

Primeiro crie um serviço cliente do AWS.S3 que especifique a região e a versão da AWS. Depois, chame o método putObject com a chave desejada, o corpo ou o arquivo de origem e um ARN de ponto de acesso do S3 no campo Bucket, que colocará o objeto no bucket associado a esse ponto de acesso.

Código de exemplo

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->putObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey', 'Body' => 'MyBody' ]);

Configurar o cliente do S3 para usar a região do ARN em vez da região do cliente

Ao usar um ARN de ponto de acesso do S3 em uma operação de cliente do S3, por padrão, o cliente se certificará de que a região do ARN corresponda à região do cliente, lançando uma exceção, caso contrário. Esse comportamento pode ser alterado para aceitar a região do ARN em vez da região do cliente definindo a opção de configuração de use_arn_region como true. Por padrão, a opção é definida como false.

Código de exemplo

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'use_arn_region' => true ]);

O cliente também verificará uma variável de ambiente e uma opção de arquivo de configuração, na seguinte ordem de prioridade:

  1. A opção do cliente use_arn_region, como no exemplo acima.

  2. A variável de ambiente AWS_S3_USE_ARN_REGION

export AWS_S3_USE_ARN_REGION=true
  1. A variável de configuração s3_use_arn_region no arquivo de configuração compartilhado da AWS (por padrão em ~/.aws/config).

[default] s3_use_arn_region = true