생성 원격 서버에서 Amazon S3로 파일을 직접 업로드하는 방법은 무엇입니까?



aws s3 폴더 생성 (4)

기술적으로 AWS Signature Version 4를 사용 하여 remote server 가 아래 그림의 고객이라고 가정하면 주 서버에서 양식을 준비하고 양식 필드를 원격 서버로 전송하여 양식을 curl 할 수 있습니다. 자세한 예제는 here .

원격 서버에서 파일을 S3에 업로드 할 수 있습니까?

원격 서버는 기본적으로 URL 기반 파일 서버입니다. 예를 들어 http://example.com/1.jpg 를 사용하면 이미지를 제공합니다. 다른 작업을 수행하지 않으며이 서버에서 코드를 실행할 수 없습니다.

http://example.com/1.jpg 에서 파일을 업로드하도록 다른 서버에서 S3에게 알리는 것이 가능합니다 http://example.com/1.jpg

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

Answer #1

터미널에서 scp 명령을 사용할 수 있습니다.

1) 터미널을 사용하여 서버로 전송할 파일이있는 위치로 이동합니다.

2) 다음을 입력하십시오.

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

주의 ec2blablbla가 Ec2 웹 사이트에서 가져온 것보다 먼저 "ec2-user @"를 추가하십시오 !! 이것은 아주 까다로운 오류입니다!

3) 파일이 업로드되고 진행률이 표시됩니다. 그것이 100 % 일 때, 당신은 끝났습니다!


Answer #2

서버에서 코드를 실행하거나 요청을 실행할 수 없다면이 작업을 수행 할 수 없습니다. 소유하고 업로드 한 서버 또는 컴퓨터에 파일을 다운로드해야합니다.

amazon S3에서 수행 할 수있는 작업은 http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html 에서 http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html

표시되는 REST 및 SOAP API에 대한 작업을 확인하면 Amazon S3에 원격 URL을 제공하고 객체를 가져올 방법이 없다는 것을 알 수 있습니다. 모든 PUT 요청은 요청의 일부로 오브젝트의 데이터를 제공해야합니다. 웹 요청을 시작한 서버 나 컴퓨터에 데이터가 있어야한다는 의미입니다.

과거에 내 사용자의 Facebook Thumbnails를 다운로드하여 내 사이트에서 사용할 수 있도록 S3에 업로드하려는 것과 비슷한 문제가있었습니다. 제가 한 일은 페이스 북에서 내 서버의 메모리로 이미지를 다운로드 한 다음 Amazon S3에 업로드하는 것입니다. 전체 작업은 2 초가 걸렸습니다. S3에 업로드가 완료되면 버킷 / 키를 데이터베이스에 씁니다.

불행히도 다른 방법은 없습니다.


Answer #3

나는 제안 된 제안이 아주 좋다고 생각한다. S3 Bucket에 파일을 SCP 할 수있다. pem 파일을 제공하면 패스워드가 덜 생기고 PHP 파일을 통해 확장 기능의 유효성을 검사 할 수 있습니다. PHP 파일은 인수로 SCP 명령에 파일을 전달할 수 있습니다.

이 솔루션의 유일한 문제점은 AWS에 인스턴스가 있어야한다는 것입니다. 웹 사이트가 다른 호스팅 제공 업체에서 호스팅되고 S3 Bucket으로 파일을 곧바로 업로드하려는 경우이 솔루션을 사용할 수 없습니다.





amazon-web-services