軽量化前のファイルのバックアップ
画像ファイルを軽量化すると、わずかながら画質が劣化します。そのためLightFileには軽量化前に元の画像をバックアップする機能が備わっています。
バックアップの作成先としてS3バケット名とプレフィックスを指定することができます。
環境変数BACKUP_BUCKET
バックアップ先のS3バケット名を指定します。
デフォルトは同一S3バケット
指定しない場合は、軽量化する画像と同じS3バケットが対象となります。
環境変数BACKUP_PREFIX
バックアップ先のS3オブジェクトのプレフィックスを指定します。
プレフィックスは、/
区切りで軽量化する画像の前方に付加されます。例えばBACKUP_PREFIX
にbackup
を指定すると、ファイルパスpath/to/file.jpg
を軽量化したときのバックアップ先はbackup/path/to/file.jpg
となります。
特別な変数${bucket}
BACKUP_PREFIX
内に${bucket}
と記述すると、その部分は軽量化する画像があったS3バケットの名称に置換されます。
複数のS3バケットを対象に軽量化を行い、共通のS3バケットにそのバックアップを作成するときに便利です。
LightFile Lambda関数 » かんたんインストールでインストールすると初期設定はそのようになっています。
デフォルトは同一ファイルパス
指定しない場合は、軽量化する画像と同じファイルパスになります。
環境変数BACKUP_ACL
環境変数UPLOAD_ACL
にはバックアップで作成されるオブジェクトのACLを指定します。次の値の中から選択できます。
- _keep
- public-read
- private
- public-read-write
- aws-exec-read
- authenticated-read
- bucket-owner-read
- bucket-owner-full-control
- log-delivery-write
_keep
は元のS3オブジェクトに適用されていたACLを完全に再現するための独自の値です。
_keep
は内部ではAPIの呼び出しが増えるため、できる限り_keep
以外の値を指定することをお勧めします。
_keep
以外の値についてはAWSで用意されているプリセットのため、アクセスコントロールリスト (ACL) の概要を参照ください。
デフォルトはprivate
バックアップファイルは誰からも閲覧する必要がないため、デフォルトではprivate
となります。
バックアップ設定の組み合わせについて
BACKUP_BUCKET
とBACKUP_PREFIX
のいずれも指定をしないと、バックアップ先は軽量化されるファイルと同一になります。
この場合はバックアップが成立しないため、処理は行われません。
別のS3バケットに同一ファイルパスでバックアップする場合
BACKUP_BUCKET
のみを指定します。
同一のS3バケットに別のパスでバックアップする場合
BACKUP_PREFIX
のみを指定します。
この場合、バックアップファイルの作成時にLambda関数が起動しないように注意してください。
LightFileはバックアップで作成されたオブジェクトを判定するのでバックアップファイルがさらに自動で軽量化することはありませんが、無駄なLambda関数の起動がないようにS3イベントのプレフィックス設定を行うことをお勧めします。
別のS3バケットに別のパスでバックアップする場合
BACKUP_BUCKET
とBACKUP_PREFIX
を同時に指定することも可能です。