2017-10-04 3 views
0

S3에서 곧바로가 아니라 비공개 CloudFront를 사용하도록 응용 프로그램을 개정 중입니다.CloudfFont S3에서 파일을 다운로드하는 것과 동일한 GetObjectRequest

나는 서명 된 URL을 만들고 필요에 따라 picturbox를 채울 수있었습니다. 나는 GetObjectRequest의 CloudFront를 동등한를 찾을 수 없습니다입니다

...

for (int num = 1; num < 16; num++) 
{ 

    GetObjectRequest request = new GetObjectRequest 
    { 
     BucketName = ContainerName, 
     Key = tempDownload + @"/" + num + ".jpg" 
    }; 

    try 
    { 
     //Issue request and remember to dispose of the response 
     using (GetObjectResponse response = s3Client.GetObject(request)) 
     { 
      string dest = Path.Combine(newFileFolder, tempDownload + num + ".jpg"); 
      if (!File.Exists(dest)) 
      { 
       response.WriteResponseStreamToFile(dest); 
      } 
     } 
    } 
} 

내가 응용 프로그램 사용자의 하드 드라이브에 CloudFront를 통해 파일을 다운로드하려합니다.

+0

왜 서명 된 URL을 만들었으며 그 작업을 수행 했습니까? – Kannaiyan

답변

2

CloudFront에는 GetObject에 해당하는 항목이 없습니다. CloudFront는 HTTP/HTTPS 프로토콜을 통해 데이터를 가져 오도록 설계되었습니다.

사용자 컴퓨터에 다운로드하려는 파일이 공개되어있는 경우 CloudFront 배포본 http/https URL을 통해 액세스 할 수 있습니다.

다운로드하려는 파일이 비공개 인 경우 Origin 액세스 ID를 Serve Private Content으로 설정하거나 Pre-signed URLs을 CloudFront 배포 http/https URL을 통해 사용해야합니다.

+0

도움 주셔서 감사합니다.하지만 이미 내 애플리케이션에서 PictureBox를 채울 때 작동하는 사전 서명 된 URL을 만들었습니다. 나는 많은 도움이 된 Cloudberry Application을 사용하고있다. 내가 찾고있는 것은 CloudFront의 서명 된 URL 요청을 통해 S3 파일을 가져 와서 사용자의 하드 드라이브에 저장하는 코드입니다. – Cfence

+0

제공된 링크에서 CloudFront 사전 서명 된 URL을 생성하는 샘플 C# 코드가 있습니다. 해당 URL을 사용하면 AWS SDK를 사용하여 파일을 다운로드하지 않습니다. 대신 C#의 'HttpClient'(예 :)를 사용하여 파일을 표준 URL로 다운로드합니다. –

+0

고마워요! 이것은 내가 필요한 도움이었습니다. – Cfence