Google Cloud Storage: วิธีรับรายการไฟล์ใหม่ในที่เก็บข้อมูล / โฟลเดอร์โดยใช้ gsutil

ฉันมีบัคเก็ต/โฟลเดอร์ซึ่งมีไฟล์เข้ามามากมายทุกๆ นาที ฉันจะอ่านเฉพาะไฟล์ใหม่ตามการประทับเวลาของไฟล์ได้อย่างไร

เช่น แสดงรายการไฟล์ทั้งหมดที่มีการประทับเวลา > my_timestamp


person Remis Haroon - رامز    schedule 17.05.2017    source แหล่งที่มา


คำตอบ (3)


นี่ไม่ใช่ฟีเจอร์ที่ gsutil หรือ GCS API มีให้ เนื่องจากไม่มีวิธีแสดงรายการออบเจ็กต์โดยการประทับเวลา

แต่คุณสมัครรับออบเจ็กต์ใหม่ได้โดยใช้ฟีเจอร์ GCS Cloud Pub/Sub แทน .

person jterrace    schedule 17.05.2017
comment
+1. ดูคำถามนี้สำหรับตัวอย่างวิธีตั้งค่าโดยใช้ gsutil: stackoverflow.com/questions/43074834/ - person mhouglum; 18.05.2017

คุณสามารถใช้ bash-fu บ้าง:

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

ทำลายมันลง:

# 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 }'`

ทดสอบกับ Google Cloud SDK v186.0.0, gsutil v4.28

person Jujhar Singh    schedule 17.01.2018
comment
โซลูชันนี้เปราะบางมากเนื่องจากจะพังได้ง่ายหาก Google ตัดสินใจเปลี่ยนรูปแบบเล็กน้อย - person Remis Haroon - رامز; 26.01.2018
comment
@remisharoon คุณไม่เคยขอให้มีความแข็งแกร่งเป็นพิเศษในคำถามเดิมของคุณ ฉันจะเพิ่มหมายเลขเวอร์ชัน gsutil ลงในคำตอบของฉันเพื่อให้ผู้คนได้รับแนวคิด - person Jujhar Singh; 29.01.2018
comment
อัปเดตที่เหมาะกับฉันใน Google CloudSDK 190.0.1 และ gsutil 4.28 รุ่นใหม่กว่า: 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
สมบูรณ์แบบ .. อันที่อัปเดตนี้ใช้ได้กับฉัน - person vikrant rana; 29.06.2021
comment
เป็นไปได้หรือไม่ที่จะเลือกลำดับ asc หรือ dsc ในขณะที่แสดงผลลัพธ์การเรียงลำดับ - person vikrant rana; 29.06.2021

หากคุณสนใจไฟล์ใหม่หรือพูดอีกนัยหนึ่งคือไฟล์ที่ไม่มีอยู่ในที่เก็บข้อมูลปลายทางของคุณ หรือคุณสามารถใช้ตัวเลือก gsutil -n เนื่องจากจะคัดลอกเฉพาะไฟล์ที่ไม่ปรากฏในที่เก็บข้อมูลปลายทาง

จากเอกสาร https://cloud.google.com/storage/docs/gsutil/commands/cp?hl=ru

ไม่มีคนปิดบัง เมื่อระบุไว้ ไฟล์หรืออ็อบเจ็กต์ที่มีอยู่ที่ปลายทางจะไม่ถูกเขียนทับ รายการใดๆ ที่ถูกข้ามโดยตัวเลือกนี้จะถูกรายงานว่าถูกข้าม ตัวเลือกนี้จะดำเนินการคำขอ GET เพิ่มเติมเพื่อตรวจสอบว่ามีรายการอยู่หรือไม่ก่อนที่จะพยายามอัปโหลดข้อมูล วิธีนี้จะบันทึกข้อมูลที่ส่งซ้ำ แต่คำขอ HTTP เพิ่มเติมอาจทำให้การถ่ายโอนออบเจ็กต์ขนาดเล็กช้าลงและมีราคาแพงมากขึ้น

ข้อเสียของแนวทางนี้คือ มันส่งคำขอตรวจสอบสำหรับทุกไฟล์ที่อยู่ในที่เก็บข้อมูลต้นทางของคุณ

person Neeraj    schedule 21.07.2019