Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Amazon S3 pré-assinado URL com a versão 3 AWS SDK for PHP - 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á.

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

Amazon S3 pré-assinado URL com a versão 3 AWS SDK for PHP

Você pode autenticar certos tipos de solicitações passando as informações necessárias como parâmetros de sequência de caracteres de consulta em vez de usar o cabeçalho Authorization. HTTP Isso é útil para habilitar o acesso de navegadores de terceiros a seus dados privados do Amazon S3 sem um proxy na solicitação. A ideia é criar uma solicitação “pré-assinada” e codificá-la para URL que o navegador do usuário final possa recuperar. Além disso, você pode limitar uma solicitação pré-assinada, especificando um tempo de expiração.

Os exemplos a seguir mostram como:

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

Credenciais

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

Criação de uma solicitação pré-assinada

Você pode obter o pré-assinado URL para um objeto do Amazon S3 usando o Aws\S3\S3Client::createPresignedRequest() método. Esse método aceita um objeto Aws\CommandInterface e um timestamp expirado e retorna um objeto Psr\Http\Message\RequestInterface pré-assinado. Você pode recuperar o pré-assinado URL do objeto usando o getUri() método da solicitação.

O cenário mais comum é criar um GET objeto pré-assinadoURL.

Importações

use Aws\Exception\AwsException; use AwsUtilities\PrintableLineBreak; use AwsUtilities\TestableReadline; use DateTime; require 'vendor/autoload.php';

Código de exemplo

$command = $s3Service->getClient()->getCommand('GetObject', [ 'Bucket' => $bucket, 'Key' => $key, ]);

Criando um pré-assinado URL

Você pode criar pré-assinados URLs para qualquer operação do Amazon S3 usando getCommand o método para criar um objeto de comando e, em seguida, chamar createPresignedRequest() o método com o comando. Ao, finalmente, enviar a solicitação, use o mesmo método e os mesmos cabeçalhos da solicitação retornada.

Código de exemplo

try { $preSignedUrl = $s3Service->preSignedUrl($command, $expiration); echo "Your preSignedUrl is \n$preSignedUrl\nand will be good for the next 20 minutes.\n"; echo $linebreak; echo "Thanks for trying the Amazon S3 presigned URL demo.\n"; } catch (AwsException $exception) { echo $linebreak; echo "Something went wrong: $exception"; die(); }

Chegando URL a um objeto

Se você só precisa do público URL para um objeto armazenado em um bucket do Amazon S3, você pode usar o Aws\S3\S3Client::getObjectUrl() método. Esse método retorna um valor não assinado URL para o bucket e a chave fornecidos.

Código de exemplo

$preSignedUrl = $s3Service->preSignedUrl($command, $expiration);
Importante

O URL retornado por esse método não é validado para garantir que o bucket ou a chave existam, nem esse método garante que o objeto permita acesso não autenticado.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.