2016-12-12 1 views
1

현재 C# 응용 프로그램을 사용하여 알려진 URL에서 사진을 다운로드하고 AWS S3 서버에 업로드합니다.AWS S3에 파일을 다운로드하도록 요청할 수 있습니까?

using (WebClient c = new WebClient()) 
{ 
    var data = c.DownloadData(ad.PhotoUrl); 
    var s3 = new AmazonS3Client(RegionEndpoint.EUWest1); 
    using (var memoryStream = new MemoryStream(data)) 
    { 
     using (var yourBitmap = new Bitmap(memoryStream)) 
     { 
      yourBitmap.Save(memoryStream, ImageFormat.Jpeg); 
      var titledRequest = new PutObjectRequest 
      { 
       CannedACL = S3CannedACL.PublicRead, 
       InputStream = memoryStream, 
       BucketName = myBucket, 
       Key = keyName 
      }; 
      s3.PutObject(titledRequest); 
     } 
    } 
} 

그것은 잘 작동하지만이 방법을 피하기 위해 같은 것, 정말 내 대역폭을 죽일/삭제 저장하는 일정 큰 이미지 흐름을 가지고있다. "다운로드"부분을 무시할 수 있습니까? 내 말은, AWS S3 서버에 ad.PhotoUrl에있는 이미지를 다운로드하도록 요청할 수 있습니까? C#은 "먼 요청"에 필요하지 않습니다. 나는 가능한지를 알고 싶어서 해결책을 찾기 위해 조금만 파고들 수 있습니다.

AWS S3에 간단히 말하면됩니다.이 이미지를 다운로드하여 저에게 저장할 수 있습니까? 대신 : 이봐, 여기 내가 방금 다운로드 한 이미지가있어, 그것을 저장할 수 있니?

답변

3

S3는 실제로는 파일 저장 만하므로이 작업을 수행 할 수 없지만 다운로드를 시작하고 S3에 파일을 푸는 람다 함수를 사용하여 S3를 해결할 수 있습니다. 람다 함수는 AWS SDK 또는 API 게이트웨이 HTTP 요청을 통해 호출 할 수 있습니다.

+0

유일한 해결책 인 것처럼 보입니다. 아이디어를 주셔서 감사 드리며,이 솔루션을 조사합니다. – Gun

관련 문제