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 perintah di. AWS CLI Untuk perintah yang tidak tercakup dalam topik ini dan contoh perintah tambahan, lihat perintah di AWS CLI Referensi.
aws s3
Perintah tingkat tinggi menyederhanakan pengelolaan objek Amazon S3. Perintah ini memungkinkan Anda untuk mengelola konten Amazon S3 di dalam dirinya sendiri dan dengan direktori lokal.
Topik
Prasyarat
Untuk menjalankan s3
perintah, Anda perlu:
Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, silakan lihat Menginstal atau memperbarui ke versi terbaru AWS CLI dan Otentikasi dan akses kredensional untuk AWS CLI.
-
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-disposition
cache-control
, expires
dan. metadata
Ini dapat menghasilkan AWS API panggilan tambahan ke titik akhir Amazon S3 yang tidak akan dilakukan 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-language
content-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.
Buat bucket
Gunakan perintah untuk membuat ember. Nama bucket harus unik secara global (unik di semua Amazon S3) dan harus DNS sesuai.
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://amzn-s3-demo-bucket
bucket.
$
aws s3 mb s3://
amzn-s3-demo-bucket
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 amzn-s3-demo-bucketamzn-s3-demo-bucket1 2018-12-14 14:55:44 amzn-s3-demo-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://amzn-s3-demo-bucket
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 di bucket-name/example/
(yaitu, benda-benda di bucket-name
disaring oleh awalan example/
).
$
aws s3 ls
s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket
ember.
$
aws s3 rb
s3://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 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://amzn-s3-demo-bucket
--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://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 perintah untuk memindahkan objek dari ember atau direktori lokal. s3 mv
Perintah 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 titik akses ARNs atau alias titik akses di sumber atau tujuan Amazon S3 Anda, Anda harus berhati-hati agar sumber dan URIs tujuan Amazon URIs S3 Anda menyelesaikan 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://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 perintah. s3 mv
$
aws s3 mv filename.txt s3://amzn-s3-demo-bucket
Contoh berikut memindahkan file dari bucket Amazon S3 ke direktori kerja saat ini, tempat ./
menentukan direktori kerja Anda saat ini.
$
aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
Menyalin 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 a CRLF atau menambahkan input atau output CRLF ke pipa, atau output yang dialihkan.
s3 cp
Perintah menggunakan sintaks berikut untuk mengunggah aliran file dari stdin
bucket tertentu.
Sintaksis
$
aws s3 cp - <target> [--options]
s3 cp
Perintah 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://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 perintah. s3 cp
$
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, yang ./
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
tostdout
, menggunakan bzip2
perintah untuk mengompres file, dan mengunggah file terkompresi baru yang diberi nama. key.bz2
s3://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
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 amzn-s3-demo-bucket dengan direktori kerja saat ini.
s3 sync
memperbarui 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://amzn-s3-demo-bucket/path/MySubdirectory
$
aws s3 sync . s3://mamzn-s3-demo-bucket/path
upload: 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 --delete
delete: s3://amzn-s3-demo-bucket/path/MyFile1.txt // Delete object from bucket
$
aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
delete: 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 . --delete
delete: 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 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://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 . --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 sync
dans3 cp
dapat menggunakan--acl
opsi. Ini memungkinkan Anda untuk mengatur izin akses untuk file yang disalin ke Amazon S3.--acl
Opsi menerimaprivate
,public-read
, danpublic-read-write
nilai. Untuk informasi selengkapnya, lihat Kalengan ACL di Panduan Pengguna Amazon S3.$
aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read
- mengecualikan
-
Saat Anda menggunakan
s3 cp
,s3 mv
,s3 sync
, ataus3 rm
perintah, Anda dapat memfilter hasil dengan menggunakan--include
opsi--exclude
or.--exclude
Opsi 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 cp
,s3 mv
,s3 sync
, ataus3 rm
perintah, Anda dapat memfilter hasil menggunakan--include
opsi--exclude
or.--include
Opsi 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
-
s3 sync
Perintahs3 cp
s3 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. GantiPermission
,Grantee_Type
, danGrantee_ID
dengan nilai Anda sendiri.Sintaksis
--grants
Permission
=Grantee_Type
=Grantee_ID
[Permission
=Grantee_Type
=Grantee_ID
...]Setiap nilai mengandung elemen-elemen berikut:
-
Permission
- 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 hibah berdasarkanGrantee_Type
.-
uri
- Kelompok ituURI. 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, danfull
izin (,read
readacl
, danwriteacl
) ke akun yang terkait dengan.user@example.com
$
aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grants
read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
Anda juga dapat menentukan kelas penyimpanan nondefault (
REDUCED_REDUNDANCY
atauSTANDARD_IA
) untuk objek yang Anda unggah ke Amazon S3. Untuk melakukan ini, gunakan--storage-class
opsi.$
aws s3 cp file.txt s3://amzn-s3-demo-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://amzn-s3-demo-bucket/path
dan 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
-
Kunci daftar secara hierarkis menggunakan awalan dan pembatas dalam Panduan Pengguna Amazon S3