[英]Iterate through Files in Google Cloud Bucket
我正在嘗試實現一個相對簡單的ETL管道,該管道可循環訪問Google雲存儲桶中的文件。 存儲桶有兩個文件夾:/ input和/ output。
我想做的是編寫一個Java / Scala腳本來遍歷/ input中的文件,並將轉換應用於/ output中不存在的或時間戳晚於/ output中的那些。 我一直在尋找Java API文檔中可以利用的功能(而不是僅調用gsutil ls ...
),但是到目前為止還沒有任何運氣。 關於在文檔中的位置有何建議? 編輯:有比使用數據傳輸對象更好的方法:
public Page<Blob> listBlobs() {
// [START listBlobs]
Page<Blob> blobs = bucket.list();
for (Blob blob : blobs.iterateAll()) {
// do something with the blob
}
// [END listBlobs]
return blobs;
}
舊方法:
def getBucketFolderContents(
bucketName: String
) = {
val credential = getCredential
val httpTransport = GoogleNetHttpTransport.newTrustedTransport()
val requestFactory = httpTransport.createRequestFactory(credential)
val uri = "https://www.googleapis.com/storage/v1/b/" + URLEncoder.encode(
bucketName,
"UTF-8") +
"o/raw%2f"
val url = new GenericUrl(uri)
val request = requestFactory.buildGetRequest(uri)
val response = request.execute()
response
}
}
您可以通過在對象列表API上設置前綴字符串來列出文件夾下的對象: https : //cloud.google.com/storage/docs/json_api/v1/objects/list列表的結果已排序,因此您應該能夠列出兩個文件夾,然后依次瀏覽兩個文件夾並生成差異列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.