Вопрос по amazon-ec2 – Как загрузить файлы напрямую в Amazon S3 с удаленного сервера?

17

Можно ли загрузить файл на S3 с удаленного сервера?

Удаленный сервер в основном является файловым сервером на основе URL. Пример использованияhttp://example.com/1.jpgСлужит имиджу. Он больше ничего не делает и не может запускать код на этом сервере.

Возможно иметь другой сервер, говорящий S3, чтобы загрузить файл сhttp://example.com/1.jpg

<code>           upload from http://example.com/1.jpg 
server -------------------------------------------> S3 <-----> example.com
</code>

Ваш Ответ

4   ответа
20

то нет, вы не можете этого делать. Вам нужно будет загрузить файл на свой сервер или компьютер и загрузить его оттуда.

Вы можете увидеть операции, которые вы можете выполнить на Amazon S3 наhttp://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html

Проверяя операции как для API REST, так и для API SOAP, вы увидите, что нет способа дать Amazon S3 удаленный URL-адрес и заставить его захватить объект для вас. Все запросы PUT требуют, чтобы данные объекта были предоставлены как часть запроса. То есть сервер или компьютер, инициирующий веб-запрос, должны иметь данные.

В прошлом у меня была похожая проблема, когда я хотел загрузить своих пользователей & apos; Миниатюры Facebook и загрузить их на S3 для использования на моем сайте. Я сделал это, загрузив изображение из Facebook в память на моем сервере, а затем загрузив его в Amazon S3 - полная загрузка заняла менее 2 секунд. После завершения загрузки на S3 запишите ведро / ключ в базу данных.

К сожалению, другого способа сделать это не существует.

Как вы загрузили изображения в память и загрузили их? Я пытаюсь справиться с подобной ситуацией прямо сейчас, но я не смог найти способ загрузить файл и загрузить его на S3, не сохраняя его на диске сервера.
1

Я думаю, что предложенное предложение довольно хорошее, вы можете отправить SCP файл в S3 Bucket. Предоставление pem-файла будет проходить без аутентификации по паролю, с помощью PHP-файла вы можете проверить расширения. Файл PHP может передавать файл в качестве аргумента команды SCP.

The only problem with this solution is, you must have your instance in AWS. You can't use this solution if your website is hosted in other Hosting Providers and you are trying to upload files straight to S3 Bucket.

1

Технически это возможно,с использованием AWS Signature Version 4Предполагая вашremote server Если клиент на изображении ниже, вы можете подготовить форму на главном сервере и отправить поля формы на удаленный сервер, чтобы онаcurl Это. Подробный примерВот.

Amazon S3 upload using a POST request

-2

Вы можете использовать команду scp из терминала.

1) используя терминал, перейдите в место, где находится тот файл, который вы хотите передать на сервер

2) введите это:

scp -i yourAmazonKeypairPath.pem  fileNameThatYouWantToTransfer.php [email protected]:

Нотабене Добавить & quot; ec2-user @ & quot; перед вашими ec2blablbla материалами, которые вы получили с сайта Ec2 !! Это такая придирчивая ошибка!

3) Ваш файл будет загружен и будет показан прогресс. Когда это на 100%, все готово!

Я полагаю, что вы можете запустить экземпляр EC2, использовать его для удаленного копирования (сервер -> EC2 -> S3), а затем снова уничтожить экземпляр EC2.
Что, почему кто-то проголосовал бы за это? Вы можете объяснить? Это работает для меня!
Отклонено, потому что этот пост специально спрашивает о S3 и S3 не является нормальным экземпляром ec2, поэтому он не работает SSH-сервером. Вы должны использовать протокол HTTP, чтобы поговорить с ним.

Похожие вопросы