Sekarang ada 3 cara untuk menyelesaikan ini: melalui Konsol AWS , melalui baris perintah , atau melalui alat baris perintah s3cmd .
Instruksi Konsol AWS
Ini sekarang adalah solusi yang direkomendasikan. Ini jelas, tetapi dapat memakan waktu.
- Masuk ke AWS Management Console
- Masuk ke bucket S3
- Pilih semua file dengan rute
- Pilih "Lainnya" dari menu
- Pilih "Ubah metadata"
- Di kolom "Key", pilih "Cache-Control" dari menu drop-down max-age = 604800Enter (7 hari) untuk Nilai
- Tekan tombol "Simpan"
( terima kasih kepada @biplob - tolong beri dia cinta di bawah )
Solusi AWS Command Line
Awalnya, ketika saya membuat kebijakan ember ini tidak ada jalannya, jadi saya memikirkan cara melakukannya menggunakan aws-cli, dan ini cukup apik. Ketika meneliti, saya tidak dapat menemukan contoh apa pun di alam liar, jadi saya pikir saya akan memposting beberapa solusi saya untuk membantu mereka yang membutuhkan.
CATATAN: Secara default, aws-cli hanya menyalin metadata file saat ini, BAHKAN JIKA ANDA MENENTUKAN METADATA BARU.
Untuk menggunakan metadata yang ditentukan pada baris perintah, Anda perlu menambahkan tanda '--metadata-directive REPLACE'. Berikut ini beberapa contohnya.
Untuk satu file
aws s3 cp s3://mybucket/file.txt s3://mybucket/file.txt --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
Untuk seluruh bucket (note --recursive flag):
aws s3 cp s3://mybucket/ s3://mybucket/ --recursive --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
Sedikit gotcha saya temukan, jika Anda hanya ingin menerapkannya ke jenis file tertentu, Anda perlu mengecualikan semua file, lalu sertakan yang Anda inginkan.
Hanya jpg dan png:
aws s3 cp s3://mybucket/ s3://mybucket/ --exclude "*" --include "*.jpg" --include "*.png" \
--recursive --metadata-directive REPLACE --expires 2034-01-01T00:00:00Z --acl public-read \
--cache-control max-age=2592000,public
Berikut adalah beberapa tautan ke manual jika Anda membutuhkan info lebih lanjut:
Masalah Dikenal:
"Unknown options: --metadata-directive, REPLACE"
ini dapat disebabkan oleh awscli yang sudah kadaluwarsa - lihat jawaban @ eliotRosewater di bawah
Alat S3cmd
S3cmd adalah "Alat baris perintah untuk mengelola layanan Amazon S3 dan CloudFront". Meskipun solusi ini membutuhkan git pull, ini mungkin solusi yang lebih sederhana dan lebih komprehensif.
Untuk instruksi lengkap, lihat posting @ ashishyadaveee11 di bawah ini
Semoga membantu!