Aws-cli: Tambahkan opsi --no-overwrite ke aws s3 cp/mv

Dibuat pada 6 Okt 2017  ·  43Komentar  ·  Sumber: aws/aws-cli

Akan menyenangkan untuk memiliki fungsi kenyamanan --no-overwrite untuk perintah aws s3 cp/mv , yang akan memeriksa tujuan target yang belum ada sebelum memasukkan file ke dalam ember s3.

Tentu saja logika ini tidak dapat dijamin oleh AWS API (afaik...) dan rentan terhadap kondisi balapan, dll. Tetapi akan sangat membantu untuk mencegah kesalahan yang tidak disengaja!

feature-request s3

Komentar yang paling membantu

Berdasarkan umpan balik komunitas, kami telah memutuskan untuk mengembalikan permintaan fitur ke masalah GitHub.

Semua 43 komentar

Menandai sebagai permintaan fitur. Bagian yang sulit jika kita melakukannya di cp atau mv adalah bahwa CLI mungkin harus meminta S3 untuk melihat apakah file tersebut ada sebelum mencoba mengunggahnya. Jadi mungkin lebih masuk akal untuk menambahkannya ke sync karena sudah melakukannya.

Saya ingin melihat ini di cp dan/atau mv juga.

Alasan saya tidak menggunakan sync untuk saat ini adalah karena sync memiliki masalah kinerja yang besar jika bucket tujuan memiliki banyak file yang ada di bawah direktori target.

Saat Anda menjalankan aws s3 cp --recursive newdir s3://bucket/parentdir/ , itu hanya mengunjungi setiap file yang sebenarnya disalin.

Saat Anda menjalankan aws s3 sync newdir s3://bucket/parentdir/ , ia mengunjungi file yang disalin, tetapi juga menelusuri seluruh daftar file di s3://bucket/parentdir (yang mungkin sudah berisi ribuan atau jutaan file) dan mendapatkan metadata untuk setiap file yang ada .

Pada bucket tujuan yang cukup besar, aws s3 cp --recursive membutuhkan waktu beberapa detik dan aws s3 sync membutuhkan waktu berjam-jam untuk menyalin data yang sama.

Jelas memperbaiki sync akan menyenangkan, tetapi jika menambahkan kueri "periksa untuk melihat apakah file sudah ada" ke cp adalah masalah yang lebih mudah ditangani daripada mengubah kode sync menjadi membuatnya cepat, mungkin masuk akal untuk melakukan itu sebagai gantinya.

Saya juga sangat tertarik dengan fitur ini. Prompt interaktif opsional untuk menimpa file juga akan menyenangkan untuk dimiliki.

ya @sgrimm-sg, masuk akal. Saya juga tertarik untuk melihat perintah cp CLI yang benar-benar dapat menangani kondisi ini.

Ini akan sangat berguna untuk menjadi opsi pada aws s3 sync . rsync memiliki fungsi ini tersedia sebagai --ignore-existing . Preferensi saya akan mencoba menggunakan nama opsi yang sama dengan rsync karena saya menduga ada banyak orang yang sudah akrab dengan rsync .

Selamat pagi!

Kami menutup masalah ini di sini di GitHub, sebagai bagian dari migrasi kami ke UserVoice untuk permintaan fitur yang melibatkan AWS CLI.

Ini akan memungkinkan kami mendapatkan fitur yang paling penting bagi Anda, dengan mempermudah pencarian dan menunjukkan dukungan untuk fitur yang paling Anda pedulikan, tanpa mengurangi percakapan dengan laporan bug.

Sebagai primer UserVoice cepat (jika belum terbiasa): setelah sebuah ide diposting, orang-orang dapat memilih ide tersebut, dan tim produk akan langsung menanggapi saran yang paling populer.

Kami telah mengimpor permintaan fitur yang ada dari GitHub - Cari masalah ini di sana!

Dan jangan khawatir, masalah ini akan tetap ada di GitHub demi anak cucu. Karena ini adalah impor teks saja dari posting asli ke UserVoice, kami akan tetap mengingat komentar dan diskusi yang sudah ada di sini pada masalah GitHub.

GitHub akan tetap menjadi saluran untuk melaporkan bug.

Sekali lagi, masalah ini sekarang dapat ditemukan dengan mencari judul di: https://aws.uservoice.com/forums/598381-aws-command-line-interface

-Tim Alat & SDK AWS

Entri ini secara khusus dapat ditemukan di UserVoice di: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168406-add-no-overwrite-option-to-aws-s3- cp-mv

Terkait:

Berdasarkan umpan balik komunitas, kami telah memutuskan untuk mengembalikan permintaan fitur ke masalah GitHub.

@jamesls itu bagus! dapatkah Anda menanggapi saran yang ada? --no-overwrite akan menjadi tambahan yang bagus dan itu akan menghindari membungkus panggilan dengan skrip

+1 untuk masalah ini. Saya mengusulkan -n, --no-clobber untuk mencocokkan opsi perintah cp Linux yang ada.

Apakah sudah ada implementasi dari permintaan ini? Mencoba bekerja dengan file batch Windows untuk melakukan pencadangan lokal > S3, ini adalah metode termudah, tanpa penimpaan sederhana atau tanda serupa.

Adakah pembaruan terkait fitur ini?

Adakah pembaruan mengenai fitur ini? Terima kasih

Adakah pembaruan terkait fitur ini?

Adakah pembaruan terkait fitur ini?

sev3, +1

Sangat membutuhkan fitur ini ditambahkan karena sinkronisasi S3 tampaknya tidak mengunggah setiap file.

Ada pembaruan atau solusi?

Ada pembaruan atau solusi?

Saya harus menulis skrip python untuk memuat semua item dalam ember ke dalam array (daftar), lalu memuat semua item dari direktori yang ingin saya sinkronkan, lalu membandingkan array dan mengunggah item lokal yang tidak ada dalam array S3 .

Saya harus menulis skrip python untuk memuat semua item dalam ember ke dalam array (daftar), lalu memuat semua item dari direktori yang ingin saya sinkronkan, lalu membandingkan array dan mengunggah item lokal yang tidak ada dalam array S3 .

@southpaw5271 - maukah Anda membagikan skrip Anda dan menghemat waktu saya? ; )

Saya harus menulis skrip python untuk memuat semua item dalam ember ke dalam array (daftar), lalu memuat semua item dari direktori yang ingin saya sinkronkan, lalu membandingkan array dan mengunggah item lokal yang tidak ada dalam array S3 .

@southpaw5271 - maukah Anda membagikan skrip Anda dan menghemat waktu saya? ; )

Sepertinya saya tidak memilikinya lagi :( Maaf!

Bendera ini juga berguna untuk perintah cp , karena sync tidak mengizinkan penyalinan file saat mengubah nama tujuan.

aws s3 cp --no-overwrite ./somefile s3://bucket/othername

Kami juga membutuhkan opsi --no-overwrite dari s3 ke lokal. Kami telah dibakar oleh penimpaan yang tidak disengaja dari individu yang bermaksud baik, dan ini akan menjadi cara yang sangat dihargai untuk memasang "pagar pembatas" bagi mereka. Terima kasih!

perubahan apapun?

Adakah pembaruan terkait fitur ini? Terima kasih

+1

+1

Saya memigrasikan file dari sistem lama. Saya memiliki skrip python yang menghasilkan jalur berbeda sesuai dengan kolom db (yaitu setiap org sekarang memiliki foldernya sendiri di ember tertentu), jadi saya tidak dapat mengandalkan perintah sinkronisasi. Saya dapat menjalankan skrip untuk melakukan migrasi parsial jika -skip-duplicate atau semacam parameter akan tersedia.

+1

Ini sangat dibutuhkan. Kenapa belum ada?

+1

+10

Adakah pembaruan terkait fitur ini? Terima kasih

Juga berikan suara untuk fitur ini!

+1

+1

+1

+1

ada update tentang ini?

+1

Aku tidak percaya itu masih bukan apa-apa. Hampir tidak mungkin membuat penyimpanan yang tidak dapat diubah di S3 :(

Kami telah memulai data yang disalin dari ember S3 ke mount linux lokal dan ukuran di tujuan adalah ~40 GB kurang dari S3 Bucket. Temukan cara untuk menyalin hanya yang hilang. Sepertinya tidak ada cara mudah untuk melakukannya daripada menyalin semua..

Salah satu opsi dari aws s3 sync yang dapat mencapai sesuatu yang serupa adalah --size-only flag boolean, yang akan ditimpa di tujuan hanya jika ukurannya berbeda antara sumber dan objek tujuan,

 --size-only (boolean) Makes the size of each key the only criteria used
       to decide whether to sync from source to destination.

Perintah yang saya gunakan,

aws s3 sync s3://<source bucket> s3://<destination bucket> --size-only 

_Penting_: Sangat disarankan untuk menjalankan perintah di atas dengan flag boolean --dry-run terlebih dahulu, untuk melihat apa yang ingin dilakukan perintah ini sebelum benar-benar menjalankannya, terutama jika melibatkan sistem produksi Anda. Ini karena banyak kehati-hatian.

tidak membantu saya, menunggu #5456 ditangani oleh DH

Apakah halaman ini membantu?
0 / 5 - 0 peringkat