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:
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:
-
A opção do cliente
use_arn_region
, como no exemplo acima. -
A variável de ambiente
AWS_S3_USE_ARN_REGION
export AWS_S3_USE_ARN_REGION=true
-
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