Operações de arquivo - AWS SDK para 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á.

Operações de arquivo

O S3 Transfer Manager fornece métodos para carregar e baixar arquivos individuais.

Carregar arquivos locais

Para fazer upload de um arquivo para o Amazon S3, use o upload <add link> método.

<?php use Aws\S3\S3Transfer\Models\UploadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); // Source can be from a local path to a file. $source = '/path/to/local/file.txt'; // Or the source can be an instance of StreamInterface. $source = GuzzleHttp\Psr7\Utils::streamFor('Hello World!'); $uploadPromise = $transferManager->upload( new UploadRequest( $source, [ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'path/to/s3/file.txt', // Additional `putObject` parameters as needed. ], [ // Optional configuration overrides. 'multipart_upload_threshold_bytes' => 100 * 1024 * 1024, // 100MB 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB 'track_progress' => true, 'request_checksum_calculation' => 'when_required', ] ) ); // The upload is asynchronous, you can wait for it to complete. $result = $uploadPromise->wait(); // Or you can use the promise for more complex workflows. $result = $uploadPromise->then( function ($result) { echo "Upload succeeded!"; }, function ($error) { echo "Upload failed: " . $error->getMessage(); } )->wait();

Parâmetros do método upload

O upload método aceita uma instância de UploadRequest <add link> como argumento.

Parâmetros do UploadRequest

Parâmetro Tipo Obrigatório Description

$source

corda| StreamInterface

Sim

Caminho do caminho do arquivo local ou fluxo contendo dados a serem carregados.

$uploadRequestArgs

array

Sim

Argumentos da solicitação de upload (devem incluir Bucket e Key).

$config

array

Não

Substituições de configuração específicas para esse upload. Para obter mais informações sobre as opções de configuração, consulte a seção a seguir.

$listeners

array

Não

Conjunto de TransferListener objetos para monitorar esse upload.

$progressTracker

TransferListener

Não

Um rastreador de progresso para esse upload.

O SDK resolve o $config valor padrão da configuração do S3 Transfer Manager.

Opção Tipo Obrigatório Description

multipart_upload_threshold_bytes

int

Não

Substitui o limite padrão para quando um upload de várias partes é acionado.

target_part_size_bytes

int

Não

Substitui o tamanho padrão da peça alvo em bytes.

track_progress

bool

Não

Substitui a opção padrão para ativar o rastreamento do progresso. Se essa opção for true válida e você não fornecer um progressTracker parâmetro, o SDK usará uma implementação padrão.

concurrency

int

Não

Substitui o valor padrão para simultaneidade.

request_checksum_calculation

string

Não

Substitui o valor padrão para determinar se o cálculo da soma de verificação da solicitação deve ser executado.

Quando o upload método é executado com sucesso, ele retorna um UploadResult<add link>.

Baixe objetos do S3

Para baixar um objeto do Amazon S3, use o download <add link> método.

<?php use Aws\S3\S3Transfer\Models\DownloadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); // Download using an S3 URI. $downloadPromise = $transferManager->download( new DownloadRequest( 's3://amzn-s3-demo-bucket/path/to/s3/file.txt', [ // Additional `getObject` parameters as needed. ], [ // Optional configuration overrides. 'response_checksum_validation' => 'when_required', 'track_progress' => true, 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB ] ) ); // Wait for the download to complete. $result = $downloadPromise->wait(); // The SDK uses a stream-based download handler by default. $stream = $result->getDownloadDataResult(); // You can either get the content. $content = $stream->getContents(); // Or write the stream to a file. file_put_contents('/path/to/local/file.txt', $stream); // Don't forget to close the stream. $stream->close();

Parâmetros do método download

O download método aceita uma instância de DownloadRequest <add link> como argumento.

Parâmetros do DownloadRequest

Parâmetro Tipo Obrigatório Description

$source

seqüência|matriz| null

Não

O objeto a ser baixado do S3. Você pode fornecer esse parâmetro como uma string de URI do S3 (” s3://amzn-s3-demo-bucket/key “), uma matriz com as chaves Bucket e Key ounull. Quando esse valor fornull, passe os valores de Bucket e Key no $downloadRequestArgs parâmetro.

$downloadRequestArgs

array

Não

Argumentos adicionais de solicitação de objeto de download. Em caso $source null afirmativo, forneça os valores de Bucket e Key aqui.

$config

array

Não

Substituições de configuração específicas para esse download. Para obter mais informações sobre as opções de configuração, consulte a seção a seguir.

$downloadHandler

AbstractDownloadHandler<add link>|null

Não

O manipulador que recebe cada fragmento do objeto e gerencia seu download.

O manipulador padrão do download método usa um manipulador baseado em fluxo. Esse manipulador empurra cada pedaço de objeto para dentro de um fluxo.

O manipulador padrão do downloadFile método (consulteBaixar um objeto do S3 em um arquivo local) usa um manipulador baseado em arquivo. Esse manipulador grava cada pedaço em um arquivo.

Você pode implementar o seu próprio DownloadHandler para personalizar onde e como o SDK armazena os dados baixados. Por exemplo, você pode armazenar dados em bancos de dados, armazenamento em nuvem ou pipelines de processamento personalizados em vez de arquivos ou fluxos.

$progressTracker

TransferListener

Não

Um rastreador de progresso para esse download.

$listeners

array

Não

Conjunto de AbstractTransferListener objetos para monitorar esse download.

O SDK resolve o $config valor padrão da configuração do S3 Transfer Manager.

Opção Tipo Obrigatório Descrição

multipart_download_type

string

Não

Substitui o tipo padrão de download de várias partes. Os valores válidos são 'part', 'ranged'

response_checksum_validation

string

Não

Substitui o valor resolvido da configuração do gerenciador de transferência para determinar se a validação da soma de verificação deve ser feita. O SDK considera essa opção somente se não ChecksumMode estiver presente no $getObjectRequestArgs doDownloadRequest.

track_progress

bool

Não

Substitui a opção padrão para ativar o rastreamento do progresso. Se essa opção for true e você não fornecer um progressTracker parâmetro com o, DownloadRequest, o SDK usará uma implementação padrão.

Use essa opção para ativar um rastreador de progresso padrão quando o $progressTracker parâmetro fornull.

target_part_size_bytes

int

Não

O tamanho da peça em bytes a ser usado em um intervalo de download de várias partes. Se você não fornecer esse parâmetro, o download usará o target_part_size_bytes configurado no gerenciador de transferências.

Quando o download método é executado com sucesso, ele retorna um DownloadResult<add link>.

Baixar um objeto do S3 em um arquivo local

Para baixar um objeto do S3 diretamente em um arquivo local, use o downloadFile método:

<?php use Aws\S3\S3Transfer\Models\DownloadFileRequest; use Aws\S3\S3Transfer\Models\DownloadRequest; use Aws\S3\S3Transfer\S3TransferManager; require __DIR__ . '/../vendor/autoload.php'; $transferManager = new S3TransferManager(null, [ 'default_region' => 'us-west-2' ]); $downloadFilePromise = $transferManager->downloadFile( new DownloadFileRequest( '/path/to/local/file.txt', // Destination file path. false, // Fail when destination exists. new DownloadRequest( 's3://amzn-s3-demo-bucket/path/to/s3/file.txt', [], // `getObject` request args [ 'track_progress' => true, 'target_part_size_bytes' => 10 * 1024 * 1024, // 10MB parts ] ) ) ); // Wait for download to complete. $result = $downloadFilePromise->wait(); // `getDownloadDataResult()` returns the string for the file path of the downloaded content because // the default `DownloadHandler` used by `downloadFile()` is a file-based handler. echo "File downloaded successfully at {$result->getDownloadDataResult()}!\n";

Parâmetros do método downloadFile

O downloadFile método aceita uma instância de DownloadFileRequest como argumento.

Parâmetros do DownloadFileRequest

Opção Tipo Obrigatório Descrição

$destination

string

Sim

Caminho local onde o arquivo é salvo.

$failsWhenDestinationExists

bool

Sim

Se deve falhar se o arquivo de destino já existir. Se essa opção for false e o arquivo de destino existir, o SDK excluirá ou substituirá o arquivo existente.

$downloadRequest

DownloadRequest

Sim

O DownloadRequest objeto configurado. Para obter mais informações, consulte DownloadRequestobjeto.

Quando o downloadFile método é executado com sucesso, ele retorna DownloadResult <add link> a.