веб-сервисы amazon — перенести файл из бюджета AWS s3 в экземпляр ec2 с помощью переполнения стека

Я работал над проектом, где у нас будет процесс веб-сайта на сервере EC2. В моем проекте мне удалось написать php-код, который позволит пользователям загружать файлы с веб-сервера в бюджет AWS S3. Однако, чтобы получить доступ к этому файлу из EC2, я думаю, нам нужно перенести файл из бюджета S3 в экземпляр EC2. Я видел, что есть способ командной строки Unix, но проект, над которым я работаю, основан на PHP / HTML / JSON. Интересно, есть ли способ или учебник для доступа или передачи файла из S3 в EC2 экземпляр с помощью PHP?
Спасибо

0

Решение

Вам не нужно переносить файл из S3 в EC2, на самом деле это будет пустой тратой ресурсов. Вместо этого вы можете сгенерировать подписанный URL-адрес, указывающий на файл непосредственно на S3 (даже если сегмент / файл является личным). Эту ссылку также можно установить, чтобы истечь через определенный период. Вот пример использования AWS PHP SDK:

<?php
require 'aws-autoloader.php'; //SDK autoloader file

//*** Initiate an S3 client
$client = S3Client::factory(array(
'key'    => "public_key",
'secret' => "private_key",
'region' => "your s3 region"));

$url = $client->getObjectUrl("bucket_name", "full_object_name", "+1 minutes"[optional]);

echo $url; //Print the direct S3 link to the file, which will expire in 1 minute.
//This will work even if the bucket is private.

[Обновить]
Если вам все еще нужно загрузить файл из S3 в EC2, сделайте это:

<?php
require 'aws-autoloader.php'; //SDK autoloader file

//*** Initiate an S3 client
$client = S3Client::factory(array(
'key'    => "public_key",
'secret' => "private_key",
'region' => "your s3 region"));

$result = $client->getObject(array(
'Bucket'  => "bucket_name",
'Key'     => "name of file",
'SaveAs'  => "ec2 path to save the file at"));

echo $result; //make sure download worked.

Дальнейшее чтение:
http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]