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 |
|---|---|---|---|
|
|
corda| |
Sim |
Caminho do caminho do arquivo local ou fluxo contendo dados a serem carregados. |
|
|
array |
Sim |
Argumentos da solicitação de upload (devem incluir Bucket e Key). |
|
|
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. |
|
|
array |
Não |
Conjunto de |
|
|
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 |
|---|---|---|---|
|
|
int |
Não |
Substitui o limite padrão para quando um upload de várias partes é acionado. |
|
|
int |
Não |
Substitui o tamanho padrão da peça alvo em bytes. |
|
|
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. |
|
|
int |
Não |
Substitui o valor padrão para simultaneidade. |
|
|
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 |
|---|---|---|---|
|
|
seqüência|matriz| |
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 ou |
|
|
array |
Não |
Argumentos adicionais de solicitação de objeto de download. Em caso |
|
|
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 |
|
Não |
O manipulador que recebe cada fragmento do objeto e gerencia seu download. O manipulador padrão do O manipulador padrão do Você pode implementar o seu próprio |
|
|
|
Não |
Um rastreador de progresso para esse download. |
|
|
|
Não |
Conjunto de |
O SDK resolve o $config valor padrão da configuração do S3 Transfer Manager.
| Opção | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
|
string |
Não |
Substitui o tipo padrão de download de várias partes. Os valores válidos são 'part', 'ranged' |
|
|
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 |
|
|
bool |
Não |
Substitui a opção padrão para ativar o rastreamento do progresso. Se essa opção for Use essa opção para ativar um rastreador de progresso padrão quando o |
|
|
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 |
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 |
|---|---|---|---|
|
|
string |
Sim |
Caminho local onde o arquivo é salvo. |
|
|
bool |
Sim |
Se deve falhar se o arquivo de destino já existir. Se essa opção for |
|
|
|
Sim |
O |
Quando o downloadFile método é executado com sucesso, ele retorna DownloadResult <add link> a.