Загрузите файл в Amazon S3 напрямую с помощью файла url [duplicate]

Перейдите к

New> Project> MacOs> Инструмент командной строки

, после чего вы можете применить:

let value1: String?

value1 = readLine()
print(value ?? "")

"" для значения по умолчанию

17
задан Cory 8 May 2012 в 01:39
поделиться

4 ответа

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

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

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

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

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

19
ответ дан reach4thelasers 18 August 2018 в 20:18
поделиться

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

Amazon S3 upload using a POST request [/g2]

1
ответ дан Community 18 August 2018 в 20:18
поделиться

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

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

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

scp -i yourAmazonKeypairPath.pem  fileNameThatYouWantToTransfer.php ec2-user@ec2-00-000-000-15.us-west-2.compute.amazonaws.com:

NB Добавьте «ec2-user @» перед своими продуктами ec2blablbla, которые вы получили с сайта Ec2! Это такая придирчивая ошибка!

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

-1
ответ дан coolcool1994 18 August 2018 в 20:18
поделиться
  • 1
    Почему бы кому-то проголосовать за это? Вы можете объяснить? Это работает для меня! – coolcool1994 13 May 2014 в 06:55
  • 2
    Проголосовало, потому что это сообщение специально спрашивает о том, что S3 и S3 не являются обычным экземпляром ec2, поэтому он не запускает SSH-сервер. Для этого вам нужно использовать протокол HTTP. – mianos 14 July 2014 в 14:18
  • 3
    Я предполагаю, что вы можете запустить экземпляр EC2, использовать его для удаленной копии (server - & gt; EC2 - & gt; S3), а затем уничтожить экземпляр EC2. – Malvineous 11 April 2017 в 00:03

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

Единственная проблема с этим решением заключается в том, что вы должны иметь свой экземпляр в AWS. Вы не можете использовать это решение, если ваш веб-сайт размещен в других провайдерах хостинга, и вы пытаетесь загрузить файлы прямо в S3 Bucket.

1
ответ дан Zamiul Hasan 18 August 2018 в 20:18
поделиться
Другие вопросы по тегам:

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