Gunakan perintah tingkat tinggi (s3) dengan AWS CLI - AWS Command Line Interface

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan perintah tingkat tinggi (s3) dengan AWS CLI

Topik ini menjelaskan beberapa perintah yang dapat Anda gunakan untuk mengelola bucket dan objek Amazon S3 menggunakan perintah di. AWS CLI Untuk perintah yang tidak tercakup dalam topik ini dan contoh perintah tambahan, lihat perintah di AWS CLI Referensi.

aws s3Perintah tingkat tinggi menyederhanakan pengelolaan objek Amazon S3. Perintah ini memungkinkan Anda untuk mengelola konten Amazon S3 di dalam dirinya sendiri dan dengan direktori lokal.

Prasyarat

Untuk menjalankan s3 perintah, Anda perlu:

  • Instal dan konfigurasikan AWS CLI. Lihat informasi yang lebih lengkap di Instal atau perbarui ke versi terbaru AWS CLI dan Otentikasi dan akses kredensional.

  • Profil yang Anda gunakan harus memiliki izin yang memungkinkan AWS operasi dilakukan oleh contoh.

  • Pahami istilah Amazon S3 ini:

    • Bucket - Folder Amazon S3 tingkat atas.

    • Awalan - Folder Amazon S3 dalam ember.

    • Objek - Item apa pun yang di-host di ember 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, AWS CLI secara otomatis melakukan pengunggahan multibagian. 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, maka akan AWS CLI menghentikan unggahan 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

Properti file dan tag dalam salinan multipart

Saat 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 multibagian, tidak ada properti file dari objek sumber yang disalin ke objek tujuan.

Secara default, perintah AWS CLI versi 2 di s3 namespace yang melakukan salinan multipart mentransfer semua tag dan kumpulan properti berikut dari sumber ke salinan tujuan:content-type,,,,content-language, content-encoding content-dispositioncache-control, expires dan. metadata

Ini dapat menghasilkan panggilan AWS API tambahan ke titik akhir Amazon S3 yang tidak akan dibuat jika Anda menggunakan AWS CLI versi 1. Ini dapat mencakup:HeadObject,GetObjectTagging, danPutObjectTagging.

Jika Anda perlu mengubah perilaku default ini dalam perintah AWS CLI versi 2, gunakan --copy-props parameter untuk menentukan salah satu opsi berikut:

  • default - Nilai default. Menentukan bahwa salinan mencakup semua tag yang dilampirkan ke objek sumber dan properti yang dicakup oleh --metadata-directive parameter yang digunakan untuk salinan non-multipart:content-type,,,,, content-languagecontent-encoding, content-disposition dan. cache-control expires metadata

  • metadata-directive - Menentukan bahwa salinan hanya mencakup properti yang dicakup oleh parameter yang digunakan untuk salinan non-multipart. --metadata-directive Itu tidak menyalin tag apa pun.

  • none - Menentukan bahwa salinan termasuk tidak ada properti dari objek sumber.

Membuat bucket

Gunakan 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 periode lain.

Sintaksis

$ aws s3 mb <target> [--options]

Contoh berikut membuat s3://bucket-name bucket.

$ aws s3 mb s3://bucket-name

Daftar ember dan benda

Untuk membuat daftar bucket, folder, atau objek Anda, gunakan perintah. Menggunakan perintah tanpa target atau opsi mencantumkan semua ember.

Sintaksis

$ aws s3 ls <target> [--options]

Untuk beberapa opsi umum untuk digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi yang tersedia, lihat di Referensi AWS CLI Perintah.

Contoh berikut mencantumkan semua bucket Amazon S3 Anda.

$ aws s3 ls 2018-12-11 17:08:50 my-bucket 2018-12-14 14:55:44 my-bucket2

Perintah berikut mencantumkan semua objek dan awalan dalam ember. Dalam contoh output ini, awalan example/ memiliki satu file bernamaMyFile1.txt.

$ aws s3 ls s3://bucket-name PRE 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 dalam bucket-name/example/ (yaitu, objek dalam bucket-name disaring oleh awalan example/).

$ aws s3 ls s3://bucket-name/example/ 2018-12-06 18:59:32 3 MyFile1.txt

Hapus ember

Untuk menghapus ember, gunakan perintah.

Sintaksis

$ aws s3 rb <target> [--options]

Contoh berikut menghapus s3://bucket-name ember.

$ aws s3 rb s3://bucket-name

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 memungkinkan Anda untuk menghapus bucket. Anda harus terlebih dahulu menghapus semua konten.

Contoh berikut menghapus semua objek dan awalan di bucket, dan kemudian menghapus bucket.

$ aws s3 rb s3://bucket-name --force

Hapus objek

Untuk menghapus objek dalam ember atau direktori lokal Anda, gunakan perintah.

Sintaksis

$ aws s3 rm <target> [--options]

Untuk beberapa opsi umum untuk digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat di Referensi AWS CLI Perintah.

Contoh berikut menghapus filename.txt daris3://bucket-name/example.

$ aws s3 rm s3://bucket-name/example/filename.txt

Contoh berikut menghapus semua objek dari s3://bucket-name/example menggunakan --recursive opsi.

$ aws s3 rm s3://bucket-name/example --recursive

Pindahkan objek

Gunakan perintah untuk memindahkan objek dari ember atau direktori lokal. s3 mvPerintah menyalin objek sumber atau file ke tujuan yang ditentukan dan kemudian menghapus objek sumber atau file.

Sintaksis

$ aws s3 mv <source> <target> [--options]

Untuk beberapa opsi umum untuk digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi yang tersedia, lihat di Referensi AWS CLI Perintah.

Awas

Jika Anda menggunakan semua jenis ARN titik akses atau alias titik akses di URI sumber atau tujuan Amazon S3 Anda, 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 sumber atau objek 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://bucket-name/example kes3://my-bucket/.

$ aws s3 mv s3://bucket-name/example s3://my-bucket/

Contoh berikut memindahkan file lokal dari direktori kerja Anda saat ini ke bucket Amazon S3 dengan perintah. s3 mv

$ aws s3 mv filename.txt s3://bucket-name

Contoh berikut memindahkan file dari bucket Amazon S3 ke direktori kerja saat ini, tempat ./ menentukan direktori kerja Anda saat ini.

$ aws s3 mv s3://bucket-name/filename.txt ./

Salin objek

Gunakan perintah untuk menyalin objek dari ember atau direktori lokal.

Sintaksis

$ aws s3 cp <source> <target> [--options]

Anda dapat menggunakan parameter dasbor 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.

s3 cpPerintah menggunakan sintaks berikut untuk mengunggah aliran file dari stdin bucket tertentu.

Sintaksis

$ aws s3 cp - <target> [--options]

s3 cpPerintah menggunakan sintaks berikut untuk mengunduh aliran file Amazon S3 untuk. stdout

Sintaksis

$ aws s3 cp <target> [--options] -

Untuk beberapa opsi umum untuk digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat di Referensi AWS CLI Perintah.

Contoh berikut menyalin semua objek dari s3://bucket-name/example kes3://my-bucket/.

$ aws s3 cp s3://bucket-name/example s3://my-bucket/

Contoh berikut menyalin file lokal dari direktori kerja Anda saat ini ke bucket Amazon S3 dengan perintah. s3 cp

$ aws s3 cp filename.txt s3://bucket-name

Contoh berikut menyalin file dari bucket Amazon S3 Anda ke direktori kerja Anda saat ini, yang ./ menentukan direktori kerja Anda saat ini.

$ aws s3 cp s3://bucket-name/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://bucket-name/filename.txt

Contoh berikut mengalirkan s3://bucket-name/filename.txt file ke stdout dan mencetak konten ke konsol.

$ aws s3 cp s3://bucket-name/filename.txt - hello world

Contoh berikut mengalirkan konten s3://bucket-name/pre tostdout, menggunakan bzip2 perintah untuk mengompres file, dan mengunggah file terkompresi baru yang diberi nama. key.bz2 s3://bucket-name

$ aws s3 cp s3://bucket-name/pre - | bzip2 --best | aws s3 cp - s3://bucket-name/key.bz2

Sinkronkan objek

Perintah menyinkronkan isi ember dan direktori, atau isi dua ember. 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 sumbernya.

Sintaksis

$ aws s3 sync <source> <target> [--options]

Untuk beberapa opsi umum untuk digunakan dengan perintah ini, dan contoh, lihatOpsi yang sering digunakan untuk perintah s3. Untuk daftar lengkap opsi, lihat di Referensi AWS CLI Perintah.

Contoh berikut menyinkronkan konten jalur bernama awalan Amazon S3 di bucket bernama my-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 tempat tujuan. Output menampilkan operasi tertentu yang dilakukan selama sinkronisasi. Perhatikan bahwa operasi secara rekursif menyinkronkan subdirektori MySubdirectory dan isinya dengan. s3://my-bucket/path/MySubdirectory

$ aws s3 sync . s3://my-bucket/path upload: MySubdirectory\MyFile3.txt to s3://my-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://my-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://my-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://my-bucket/path // Sync with deletion - object is deleted from bucket $ aws s3 sync . s3://my-bucket/path --delete delete: s3://my-bucket/path/MyFile1.txt // Delete object from bucket $ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt delete: s3://my-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class $ aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Saat menggunakan --delete opsi, --include opsi --exclude dan dapat memfilter file atau objek yang akan dihapus selama s3 sync operasi. Dalam hal ini, string parameter harus menentukan file yang akan dikecualikan dari, atau menyertakan untuk, penghapusan dalam konteks direktori target atau bucket. Bagian berikut menunjukkan satu contoh.

Assume local directory and s3://my-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://my-bucket/path --delete --exclude "path/MyFile?.txt" delete: s3://my-bucket/path/MyFile88.txt ''' // Sync with delete, excluding MyFile2.rtf - local file is NOT deleted $ aws s3 sync s3://my-bucket/path . --delete --exclude "./MyFile2.rtf" download: s3://my-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: 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 versi 2 panduan referensi.

acl

s3 syncdan s3 cp dapat menggunakan --acl opsi. Ini memungkinkan Anda untuk mengatur izin akses untuk file yang disalin ke Amazon S3. --aclOpsi menerimaprivate,public-read, dan public-read-write nilai. Untuk informasi selengkapnya, lihat ACL Kalengan di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

$ aws s3 sync . s3://my-bucket/path --acl public-read
mengecualikan

Saat Anda menggunakans3 cp,s3 mv,s3 sync, atau s3 rm perintah, Anda dapat memfilter hasil dengan menggunakan --include opsi --exclude or. --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://my-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://my-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://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
memasukkan

Saat Anda menggunakans3 cp,s3 mv,s3 sync, atau s3 rm perintah, Anda dapat memfilter hasil menggunakan --include opsi --exclude or. --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://my-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://my-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://my-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
pemberian izin

s3 syncPerintah s3 cps3 mv,, dan menyertakan --grants opsi yang dapat Anda gunakan untuk memberikan izin pada objek kepada pengguna atau grup tertentu. Atur --grants opsi ke daftar izin menggunakan sintaks berikut. Ganti Permission, Grantee_Type, dan Grantee_ID dengan nilai Anda sendiri.

Sintaksis

--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID ...]

Setiap nilai mengandung elemen-elemen berikut:

  • Izin - Menentukan izin yang diberikan. Dapat diatur keread,readacl,writeacl, ataufull.

  • Grantee_Type - Menentukan bagaimana mengidentifikasi penerima hibah. Dapat diatur keuri,emailaddress, atauid.

  • Grantee_ID - Menentukan penerima berdasarkan Grantee_Type.

    • uri— URI kelompok. Untuk informasi lebih lanjut, 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 read izin pada objek untuk semua orang, dan full izin (, readreadacl, danwriteacl) ke akun yang terkait dengan. user@example.com

$ aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com

Anda juga dapat menentukan kelas penyimpanan nondefault (REDUCED_REDUNDANCYatauSTANDARD_IA) untuk objek yang Anda unggah ke Amazon S3. Untuk melakukan ini, gunakan --storage-class opsi.

$ aws s3 cp file.txt s3://my-bucket/ --storage-class REDUCED_REDUNDANCY
rekursif

Bila Anda menggunakan opsi ini, perintah dilakukan pada semua file atau objek di bawah direktori atau awalan yang ditentukan. Contoh berikut menghapus s3://my-bucket/path dan semua isinya.

$ aws s3 rm s3://my-bucket/path --recursive

Sumber daya

AWS CLI Referensi:

Referensi layanan: