Google Cloud Storage: Cara mendapatkan daftar file baru di ember/folder menggunakan gsutil

Saya memiliki ember/folder tempat banyak file masuk setiap menit. Bagaimana saya bisa hanya membaca file baru berdasarkan stempel waktu file.

misalnya: daftar semua file dengan stempel waktu > stempel waktu_saya


person Remis Haroon - رامز    schedule 17.05.2017    source sumber


Jawaban (3)


Ini bukan fitur yang disediakan gsutil atau GCS API, karena tidak ada cara untuk membuat daftar objek berdasarkan stempel waktu.

Sebagai gantinya, Anda dapat berlangganan objek baru menggunakan fitur GCS Cloud Pub/Sub .

person jterrace    schedule 17.05.2017
comment
+1. Lihat pertanyaan ini untuk contoh cara menyiapkannya menggunakan gsutil: stackoverflow.com/questions/43074834/ - person mhouglum; 18.05.2017

Anda bisa menggunakan beberapa bash-fu:

gsutil ls -l gs://<your-bucket-name> | sort -k2n | tail -n1 | awk 'END {$1=$2=""; sub(/^[ \t]+/, ""); print }'

memecahnya:

# grab detailed list of objects in bucket
gsutil ls -l gs://your-bucket-name 

# sort by number on the date field
sort -k2n

# grab the last row returned 
tail -n1

# delete first two cols (size and date) and ltrim to remove whitespace
awk 'END {$1=$2=""; sub(/^[ \t]+/, ""); print }'`

Diuji dengan Google Cloud SDK v186.0.0, gsutil v4.28

person Jujhar Singh    schedule 17.01.2018
comment
solusi ini sangat rapuh, karena mudah rusak jika Google memutuskan untuk mengubah formatnya sedikit - person Remis Haroon - رامز; 26.01.2018
comment
@remisharoon Anda tidak pernah meminta yang super kuat dalam pertanyaan awal Anda. Saya akan menambahkan nomor versi gsutil ke jawaban saya sehingga orang mendapat ide. - person Jujhar Singh; 29.01.2018
comment
Pembaruan yang berfungsi untuk saya di Google CloudSDK 190.0.1 dan gsutil 4.28 yang lebih baru: gsutil ls -l gs://your-bucket-name | sort -k2 | tail -n2 | head -n1 | awk 'END {$1=$2=""; sub(/^[ \t]+/, ""); print }' - person wearego; 01.08.2019
comment
sempurna.. yang diperbarui ini berfungsi untuk saya - person vikrant rana; 29.06.2021
comment
apakah mungkin untuk memilih urutan asc atau dsc sambil mengeluarkan hasil pengurutan - person vikrant rana; 29.06.2021

Jika Anda tertarik dengan file baru atau dengan kata lain kami dapat mengatakan file yang tidak ada di keranjang tujuan Anda, maka alternatifnya Anda dapat menggunakan opsi gsutil -n karena opsi ini hanya menyalin file yang tidak ada di keranjang tujuan.

Dari dokumentasi https://cloud.google.com/storage/docs/gsutil/commands/cp?hl=ru

Tidak ada pemukul. Jika ditentukan, file atau objek yang ada di tujuan tidak akan ditimpa. Item apa pun yang dilewati oleh opsi ini akan dilaporkan dilewati. Opsi ini akan menjalankan permintaan GET tambahan untuk memeriksa apakah suatu item ada sebelum mencoba mengunggah data. Hal ini akan menghemat pengiriman ulang data, namun permintaan HTTP tambahan mungkin membuat transfer objek kecil menjadi lebih lambat dan lebih mahal.

Kekurangan dari pendekatan ini adalah, pendekatan ini membuat permintaan pemeriksaan untuk setiap file yang ada di keranjang sumber Anda

person Neeraj    schedule 21.07.2019