2017-10-04 8 views
0

私は、S3からまっすぐではなくプライベートCloudFrontを使用するようにアプリケーションを改訂しています。CloudfFont S3からファイルをダウンロードするのと同等のGetObjectRequest

署名されたURLを作成し、必要に応じてpicturboxを作成することができました。

私は、アプリケーションのユーザーのハードドライブ上に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); 
      } 
     } 
    } 
} 

GetObjectRequestのCloudFrontの同等を見つけることができません。

+0

なぜ署名付きURLを作成したのですか? – Kannaiyan

答えて

2

CloudFrontには、GetObjectと同等のものはありません。 CloudFrontは、HTTP/HTTPSプロトコルを通じてデータを取得するように設計されています。

ユーザーのコンピュータにダウンロードするファイルが公開されている場合は、CloudFrontディストリビューションのhttp/https URLからアクセスできます。

ダウンロードするファイルがプライベートの場合は、OriginアクセスIDをServe Private Contentに設定するか、CloudFrontディストリビューションのhttp/https URLを使用してPre-signed URLsを使用する必要があります。

+0

助けてくれてありがとうございますが、私はすでにアプリケーションでPictureBoxesを入力するときに動作している、事前に署名されたURLを作成しています。私は多くを助けたCloudberryアプリケーションを使用しています。私が探しているのは、CloudFrontの署名付きURLリクエストを通じてS3ファイルを取得し、ユーザーのハードドライブに保存するコードです。 – Cfence

+0

私が提供したリンクにCloudFront事前署名URLを生成するためのサンプルC#コードがあります。このURLでは、AWS SDKを使用してファイルをダウンロードしません。代わりに、C#の 'HttpClient'(例えば)を使ってファイルを標準URLとしてダウンロードします。 –

+0

ありがとう!これはちょうど私が必要とした助けだった。 – Cfence

関連する問題