Dokumentasi ini AWS CLI hanya untuk Versi 1.
Kami mengumumkan akhir dukungan yang akan datang untuk AWS CLI versi 1. Kami menyarankan Anda bermigrasi ke AWS CLI versi 2. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, lihat pengumuman
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan perintah tingkat tinggi (s3) di AWS CLI
Topik ini menjelaskan beberapa perintah yang dapat Anda gunakan untuk mengelola bucket dan objek Amazon S3 menggunakan aws
s3 perintah di AWS CLI. Untuk perintah yang tidak tercakup dalam topik ini dan contoh perintah tambahan, lihat aws
s3 perintah di AWS CLI Referensi.
Per aws s3 intah tingkat tinggi menyederhanakan pengelolaan objek Amazon S3. Perintah ini memungkinkan Anda mengelola konten Amazon S3 dalam dirinya sendiri dan dengan direktori lokal.
Topik
Prasyarat
Untuk menjalankan s3 perintah, Anda perlu:
Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat Menginstal, memperbarui, dan menghapus instalasi AWS CLI dan Otentikasi dan akses kredensional untuk AWS CLI.
-
Profil yang Anda gunakan harus memiliki izin yang memungkinkan AWS operasi yang dilakukan oleh contoh.
-
Pahami istilah Amazon S3 ini:
-
Bucket — Folder Amazon S3 tingkat atas.
-
A walan — Folder Amazon S3 dalam bucket.
-
Objek — Item apa pun yang dihosting di bucket Amazon S3.
-
Sebelum Anda mulai
Bagian ini menjelaskan beberapa hal yang perlu diperhatikan sebelum Anda menggunakan aws s3 perintah.
Unggahan objek besar
Saat Anda menggunakan aws s3 perintah untuk mengunggah objek besar ke bucket Amazon S3, secara AWS CLI otomatis melakukan upload multipart. Anda tidak dapat melanjutkan unggahan yang gagal saat menggunakan aws s3 perintah ini.
Jika unggahan multipart gagal karena batas waktu, atau jika Anda membatalkan secara manual AWS CLI, pengunggahan AWS CLI akan berhenti dan membersihkan file apa pun yang dibuat. Proses ini dapat memakan waktu beberapa menit.
Jika proses upload atau pembersihan multipart dibatalkan oleh perintah kill atau kegagalan sistem, file yang dibuat tetap berada di bucket Amazon S3. Untuk membersihkan unggahan multipart, gunakan perintah s3api abort-multipart-upload s3api abort-
Properti file dan tag dalam salinan multibagian
Bila Anda menggunakan perintah AWS CLI versi 1 di aws s3 namespace untuk menyalin file dari satu lokasi bucket Amazon S3 ke lokasi bucket Amazon S3 lainnya, dan operasi tersebut menggunakan salinan multipart, tidak ada properti file dari objek sumber yang disalin ke objek tujuan.
Membuat bucket
Gunakan s3
mb perintah untuk membuat ember. Nama bucket harus unik secara global (unik di semua Amazon S3) dan harus sesuai dengan DNS.
Nama bucket dapat berisi huruf kecil, angka, tanda hubung, dan titik. Nama bucket dapat dimulai dan diakhiri hanya dengan huruf atau angka, dan tidak dapat berisi titik di sebelah tanda hubung atau titik lainnya.
Sintaksis
$aws s3 mb <target> [--options]
Contoh berikut membuat s3://amzn-s3-demo-bucket bucket.
$aws s3 mb s3://amzn-s3-demo-bucket
Daftar bucket dan objek
Untuk membuat daftar bucket, folder, atau objek Anda, gunakan s3
ls perintah. Menggunakan perintah tanpa target atau opsi mencantumkan semua bucket.
Sintaksis
$aws s3 ls <target> [--options]
Untuk beberapa opsi umum yang digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi yang tersedia, lihat s3
ls di Referensi AWS CLI Perintah.
Contoh berikut mencantumkan semua bucket Amazon S3 Anda.
$aws s3 ls2018-12-11 17:08:50 amzn-s3-demo-bucket1 2018-12-14 14:55:44 amzn-s3-demo-bucket2
Perintah berikut mencantumkan semua objek dan awalan dalam bucket. Dalam contoh output ini, awalan example/ memiliki satu file bernamaMyFile1.txt.
$aws s3 lss3://amzn-s3-demo-bucketPRE example/ 2018-12-04 19:05:48 3 MyFile1.txt
Anda dapat memfilter output ke awalan tertentu dengan memasukkannya ke dalam perintah. Perintah berikut mencantumkan objek di bucket-name/example/ (yaitu, objek yang di bucket-name filter oleh awalanexample/).
$aws s3 lss3://amzn-s3-demo-bucket/example/2018-12-06 18:59:32 3 MyFile1.txt
Untuk menampilkan hanya bucket dan objek di wilayah tertentu, gunakan --region opsi
$aws s3 ls--region us-east-22018-12-06 18:59:32 3 MyFile1.txt
Jika Anda memiliki daftar besar bucket dan objek, Anda dapat membuat halaman hasil menggunakan --page-size opsi --max-items atau. --max-itemsOpsi membatasi berapa banyak bucket dan objek yang dikembalikan dalam panggilan dan --page-size opsi membatasi berapa banyak dari mereka yang terdaftar di halaman.
$aws s3 ls--max-items 100 --page-size 10
Untuk informasi lebih lanjut tentang pagination, lihat Cara menggunakan parameter --page-size danCara menggunakan parameter --max-items.
Hapus bucket
Untuk menghapus bucket, gunakan s3
rb perintah.
Sintaksis
$aws s3 rb <target> [--options]
Contoh berikut menghapus s3://amzn-s3-demo-bucket ember.
$aws s3 rbs3://amzn-s3-demo-bucket
Secara default, bucket harus kosong agar operasi berhasil. Untuk menghapus ember yang tidak kosong, Anda harus menyertakan --force opsi. Jika Anda menggunakan bucket berversi yang berisi objek yang sebelumnya dihapus—tetapi dipertahankan—, perintah ini tidak mengizinkan Anda untuk menghapus bucket. Anda harus terlebih dahulu menghapus semua konten.
Contoh berikut menghapus semua objek dan awalan dalam bucket, dan kemudian menghapus bucket.
$aws s3 rbs3://amzn-s3-demo-bucket--force
Hapus objek
Untuk menghapus objek dalam bucket atau direktori lokal Anda, gunakan s3
rm perintah.
Sintaksis
$aws s3 rm <target> [--options]
Untuk beberapa opsi umum yang digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat s3
rm di Referensi AWS CLI Perintah.
Contoh berikut menghapus filename.txt daris3://amzn-s3-demo-bucket/example.
$aws s3 rm s3://amzn-s3-demo-bucket/example/filename.txt
Contoh berikut menghapus semua objek dari s3://amzn-s3-demo-bucket/example menggunakan --recursive opsi.
$aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
Pindahkan objek
Gunakan s3
mv perintah untuk memindahkan objek dari bucket atau direktori lokal. Per s3 mv intah menyalin objek atau file sumber ke tujuan yang ditentukan dan kemudian menghapus objek atau file sumber.
Sintaksis
$aws s3 mv <source> <target> [--options]
Untuk beberapa opsi umum yang digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi yang tersedia, lihat s3
mv di Referensi AWS CLI Perintah.
Awas
Jika Anda menggunakan jenis ARN titik akses atau alias titik akses apa pun di sumber Amazon S3 atau URI tujuan, Anda harus berhati-hati agar URI Amazon S3 sumber dan tujuan Anda diselesaikan ke bucket dasar yang berbeda. Jika bucket sumber dan tujuan sama, file sumber atau objek dapat dipindahkan ke dirinya sendiri, yang dapat mengakibatkan penghapusan file atau objek sumber Anda secara tidak sengaja. Untuk memverifikasi bahwa bucket sumber dan tujuan tidak sama, gunakan --validate-same-s3-paths parameter, atau atur variabel lingkungan AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS ketrue.
Contoh berikut memindahkan semua objek dari s3://amzn-s3-demo-bucket/example kes3://amzn-s3-demo-bucket/.
$aws s3 mv s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
Contoh berikut memindahkan file lokal dari direktori kerja Anda saat ini ke bucket Amazon S3 dengan s3 mv perintah.
$aws s3 mv filename.txt s3://amzn-s3-demo-bucket
Contoh berikut memindahkan file dari bucket Amazon S3 Anda ke direktori kerja Anda saat ini, di mana ./ menentukan direktori kerja Anda saat ini.
$aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
Menyalin objek
Gunakan s3
cp perintah untuk menyalin objek dari bucket atau direktori lokal.
Sintaksis
$aws s3 cp <source> <target> [--options]
Anda dapat menggunakan parameter dash untuk streaming file ke input standar (stdin) atau output standar (stdout).
Awas
Jika Anda menggunakan PowerShell, shell mungkin mengubah pengkodean CRLF atau menambahkan CRLF ke input atau output pipa, atau output yang dialihkan.
Per s3 cp intah menggunakan sintaks berikut untuk mengunggah aliran file dari stdin ke bucket tertentu.
Sintaksis
$aws s3 cp - <target> [--options]
Per s3 cp intah menggunakan sintaks berikut untuk mengunduh aliran file Amazon S3 untukstdout.
Sintaksis
$aws s3 cp <target> [--options] -
Untuk beberapa opsi umum yang digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat s3
cp di Referensi AWS CLI Perintah.
Contoh berikut menyalin semua objek dari s3://amzn-s3-demo-bucket/example kes3://amzn-s3-demo-bucket/.
$aws s3 cp s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
Contoh berikut menyalin file lokal dari direktori kerja Anda saat ini ke bucket Amazon S3 dengan s3 cp perintah.
$aws s3 cp filename.txt s3://amzn-s3-demo-bucket
Contoh berikut menyalin file dari bucket Amazon S3 Anda ke direktori kerja Anda saat ini, di mana ./ menentukan direktori kerja Anda saat ini.
$aws s3 cp s3://amzn-s3-demo-bucket/filename.txt ./
Contoh berikut menggunakan echo untuk mengalirkan teks “hello world” ke s3://bucket-name/filename.txt file.
$echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
Contoh berikut mengalirkan s3://amzn-s3-demo-bucket/filename.txt file ke stdout dan mencetak konten ke konsol.
$aws s3 cp s3://amzn-s3-demo-bucket/filename.txt -hello world
Contoh berikut mengalirkan konten s3://bucket-name/pre kestdout, menggunakan bzip2 perintah untuk mengompres file, dan mengunggah file terkompresi baru bernama key.bz2 tos3://bucket-name.
$aws s3 cp s3://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/key.bz2
Sinkronkan objek
Per s3
sync intah menyinkronkan isi bucket dan direktori, atau isi dari dua bucket. Biasanya, s3 sync menyalin file atau objek yang hilang atau usang antara sumber dan target. Namun, Anda juga dapat menyediakan --delete opsi untuk menghapus file atau objek dari target yang tidak ada di sumber.
Sintaksis
$aws s3 sync <source> <target> [--options]
Untuk beberapa opsi umum yang digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat s3
sync di Referensi AWS CLI Perintah.
Contoh berikut menyinkronkan isi awalan Amazon S3 bernama path dalam bucket bernama amzn-s3-dem o-bucket dengan direktori kerja saat ini.
s3 syncmemperbarui file apa pun yang memiliki ukuran atau waktu modifikasi yang berbeda dari file dengan nama yang sama di tujuan. Output menampilkan operasi spesifik yang dilakukan selama sinkronisasi. Perhatikan bahwa operasi secara rekursif menyinkronkan subdirektori MySubdirectory dan isinya dengan. s3://amzn-s3-demo-bucket/path/MySubdirectory
$aws s3 sync . s3://amzn-s3-demo-bucket/pathupload: MySubdirectory\MyFile3.txt to s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://amzn-s3-demo-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://amzn-s3-demo-bucket/path/MyFile1.txt
Contoh berikut, yang memperluas yang sebelumnya, menunjukkan cara menggunakan --delete opsi.
// Delete local file$rm ./MyFile1.txt// Attempt sync without --delete option - nothing happens$aws s3 sync . s3://amzn-s3-demo-bucket/path// Sync with deletion - object is deleted from bucket$aws s3 sync . s3://amzn-s3-demo-bucket/path --deletedelete: s3://amzn-s3-demo-bucket/path/MyFile1.txt // Delete object from bucket$aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txtdelete: s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --deletedelete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class$aws s3 sync . s3://amzn-s3-demo-bucket/path --storage-class STANDARD_IA
Saat menggunakan --delete opsi, --include opsi --exclude dan dapat memfilter file atau objek untuk dihapus selama s3
sync operasi. Dalam hal ini, string parameter harus menentukan file untuk dikecualikan dari, atau termasuk untuk, penghapusan dalam konteks direktori target atau bucket. Bagian berikut menunjukkan satu contoh.
Assume local directory and s3://amzn-s3-demo-bucket/path currently in sync and each contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt '''// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.$aws s3 sync . s3://amzn-s3-demo-bucket/path --delete --exclude "path/MyFile?.txt"delete: s3://amzn-s3-demo-bucket/path/MyFile88.txt '''// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --delete --exclude "./MyFile2.rtf"download: s3://amzn-s3-demo-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --deletedelete: MyFile2.rtf
Opsi yang sering digunakan untuk perintah s3
Opsi berikut sering digunakan untuk perintah yang dijelaskan dalam topik ini. Untuk daftar lengkap opsi yang dapat Anda gunakan pada perintah, lihat perintah khusus dalam panduan AWS CLI referensi referensi .
- acl
-
s3 syncdans3 cpdapat menggunakan--aclopsi. Ini memungkinkan Anda mengatur izin akses untuk file yang disalin ke Amazon S3.--aclOpsi menerimaprivate,public-read, danpublic-read-writenilai. Untuk informasi selengkapnya, lihat C anned ACL di Panduan Pengguna Amazon S3.$aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read - mengecualikan
-
Saat Anda menggunakan
s3 rmperintahs3 cps3 mv,s3 sync,, atau, Anda dapat memfilter hasil dengan menggunakan--includeopsi--excludeatau.--excludeOpsi menetapkan aturan untuk hanya mengecualikan objek dari perintah, dan opsi berlaku dalam urutan yang ditentukan. Seperti yang ditunjukkan dalam contoh berikut.Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt// Exclude all .txt files, resulting in only MyFile2.rtf being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt"// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt"// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt" - memasukkan
-
Saat Anda menggunakan
s3 rmperintahs3 cps3 mv,s3 sync,, atau, Anda dapat memfilter hasil menggunakan--includeopsi--excludeatau.--includeOpsi menetapkan aturan untuk hanya menyertakan objek yang ditentukan untuk perintah, dan opsi berlaku dalam urutan yang ditentukan. Seperti yang ditunjukkan dalam contoh berikut.Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt"// Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt"// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt" - pemberian izin
-
Per
s3 cpintahs3 mv,, dans3 syncmenyertakan--grantsopsi yang dapat Anda gunakan untuk memberikan izin pada objek kepada pengguna atau grup tertentu. Atur--grantsopsi ke daftar izin menggunakan sintaks berikut. GantiPermission,Grantee_Type, danGrantee_IDdengan nilai Anda sendiri.Sintaksis
--grantsPermission=Grantee_Type=Grantee_ID[Permission=Grantee_Type=Grantee_ID...]Setiap nilai berisi elemen-elemen berikut:
-
Permission— Menentukan izin yang diberikan. Dapat diatur keread,readacl,writeacl, ataufull. -
Grantee_Type— Menentukan cara mengidentifikasi penerima hibah. Dapat diatur keuri,emailaddress, atauid. -
Grantee_ID— Menentukan penerima hibah berdasarkan.Grantee_Type-
uri— URI grup. Untuk informasi selengkapnya, lihat Siapa penerima hibah? -
emailaddress— Alamat email akun. -
id— ID kanonik akun.
-
Untuk informasi selengkapnya tentang kontrol akses Amazon S3, lihat Kontrol akses.
Contoh berikut menyalin objek ke dalam ember. Ini memberikan
readizin pada objek untuk semua orang, danfullizin (read,readacl, danwriteacl) ke akun yang terkait denganuser@example.com.$aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.comAnda juga dapat menentukan kelas penyimpanan nondefault (
REDUCED_REDUNDANCYatauSTANDARD_IA) untuk objek yang Anda unggah ke Amazon S3. Untuk melakukan ini, gunakan--storage-classopsi.$aws s3 cp file.txt s3://amzn-s3-demo-bucket/--storage-class REDUCED_REDUNDANCY -
- rekursif
-
Saat Anda menggunakan opsi ini, perintah dilakukan pada semua file atau objek di bawah direktori atau awalan yang ditentukan. Contoh berikut menghapus
s3://amzn-s3-demo-bucket/pathdan semua isinya.$aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
Sumber daya
AWS CLI referensi:
Referensi layanan:
-
Bekerja dengan bucket Amazon S3 di Panduan Pengguna Amazon S3
-
Bekerja dengan objek Amazon S3 di Panduan Pengguna Amazon S3
-
Mendaftarkan kunci secara hierarkis menggunakan awalan dan pembatas di Panduan Pengguna Amazon S3
-
Batalkan upload multipart ke bucket S3 menggunakan AWS SDK untuk .NET (level rendah) di Panduan Pengguna Amazon S3