簡體   English   中英

遍歷Google Cloud Bucket中的文件

[英]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.

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