簡體   English   中英

rclone - 如何列出 AWS S3 存儲桶中具有最新文件的目錄?

[英]rclone - How do I list which directory has the latest files in AWS S3 bucket?

我目前正在使用 rclone 訪問 AWS S3 數據,並且由於我不使用任何一個,因此我不是專家。

我正在訪問公共存儲桶unidata-nexrad-level2-chunks ,我正在查看 1000 個文件夾。 要查看這些,我正在使用 Windows 命令提示符並輸入:

rclone lsf chunks:unidata-nexrad-level2-chunks/KEWX

只有一個文件夾具有隨時寫入的實時數據,而這正是我需要找到的。 我如何確定哪一個是我需要的? 我可以運行檢查以查看哪個文件夾具有最新數據。 但是我該怎么做呢?

我的命令的輸出如下所示:

1/
10/
11/
12/
13/
14/
15/
16/
17/
18/
19/
2/
20/
21/
22/
23/
... ... ... (to 1000)

我該怎么做才能找到最新數據的寫入位置? 由於一次只有一個文件夾,我希望它會很簡單。

編輯:我意識到我需要一種方法來列出最新的文件(連同它的文件夾#),而無需列出所有 999 個目錄中可能的每個文件和時間戳。 我正在開始賞金,正確的答案使我能夠在不費力地完成所有這些問題的情況下做到這一點,將獲得賞金。 如果列出所有 999 個文件夾中的所有內容需要 20 分鍾,則沒有用,因為到那時下一個文件夾將處於活動狀態。

如果您想知道包含最新文件的特定文件夾,您應該編寫自己的腳本來檢索所有對象的列表,然后找出哪個是最新的以及它在哪個存儲桶中。這是一個執行此操作的 Python 腳本:

import boto3

s3_resource = boto3.resource('s3')

objects = s3_resource.Bucket('unidata-nexrad-level2-chunks').objects.filter(Prefix='KEWX/')

date_key_list = [(object.last_modified, object.key) for object in objects]

print(len(date_key_list)) # How many objects?

date_key_list.sort(reverse=True)

print(date_key_list[0][1])

輸出:

43727
KEWX/125/20200912-071306-065-I

瀏覽這 43,700 個對象需要一段時間!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM