web-dev-qa-db-ja.com

Amazon s3バケットのファイルを圧縮してそのURLを取得する方法

Amazon s3バケット内にたくさんのファイルがあります。それらのファイルを圧縮してダウンロードし、Java Springを使用してS3 URL経由でコンテンツを取得します。

6
jeff ayan

S3はファイルサーバーではなく、データ操作などのオペレーティングシステムファイルサービスも提供していません。

「巨大な」ファイルがたくさんある場合、最善の策は

  1. シンプルなEC2インスタンスを開始する
  2. それらすべてのファイルをEC2インスタンスにダウンロードして圧縮し、新しいオブジェクト名でS3バケットに再度アップロードします。

はい、AWSラムダを使用して同じことを行うことができますが、ラムダは900秒(15分)の実行タイムアウトに制限されています(したがって、ラムダ実行パフォーマンスを向上させるために、より多くのRAMを割り当てることをお勧めします)

S3からローカルリージョンEC2インスタンスおよびその他のサービスへのトラフィックは無料です。

主な目的がread EC2/etcサービスを使用する同じAWSリージョン内のファイルである場合、この追加の手順は必要ありません。ファイルに直接アクセスするだけです。

注意 :

AWS APIを使用してファイルにアクセスして共有することをお勧めします。ファイルを公開して共有する場合は、セキュリティの問題を真剣に検討し、ダウンロードを制限する必要があります。 AWSのインターネットへのトラフィックは決して安くはありません。

19
mootmoot

S3で圧縮された個々のファイル(オブジェクト)が必要な場合は、迂回的に行うことができます。 S3バケットを指すCloudFrontエンドポイントを定義してから、CloudFrontにコンテンツを途中で圧縮させることができます。 https://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html =

0
Frode N. Rosand