簡體   English   中英

有沒有辦法從 Google Vault Export 下載導出的數據?

[英]Is there any way to download exported data from a Google Vault Export?

https://developers.google.com/vault/guides/exports 上的文檔中,我已經能夠創建、列出和檢索導出,但我還沒有找到任何方法來下載與特定關聯的導出數據出口。 有什么辦法可以通過 API 下載導出的文件,還是只能通過 Vault UI 下載?

導出元數據中有一個cloudStorageSink鍵,但嘗試使用通過雲存儲 API 提供的值會導致通用權限問題(403 錯誤)。

示例導出元數據響應:

{
    "status": "COMPLETED",
    "cloudStorageSink": {
        "files": [
            {
                "md5Hash": "da5e3979864d71d1e3ac776b618dcf48",
                "bucketName": "408d9135-6155-4a43-9d3c-424f124b9474",
                "objectName": "a740999b-e11b-4af5-b8b1-6c6def35d677/exportly-41dd7886-fe02-432f-83c-a4b6fd4520a5/Test_Export-1.zip",
                "size": "37720"
            },
            {
                "md5Hash": "d345a812e15cdae3b6277a0806668808",
                "bucketName": "408d9135-6155-4a43-9d3c-424f124b9474",
                "objectName": "a507999b-e11b-4af5-b8b1-6c6def35d677/exportly-41dd6886-fb02-4c2f-813c-a4b6fd4520a5/Test_Export-metadata.xml",
                "size": "8943"
            },
            {
                "md5Hash": "21e91e1c60e6c07490faaae30f8154fd",
                "bucketName": "408d9135-6155-4a43-9d3c-424f124b9474",
                "objectName": "a503959b-e11b-4af5-b8b1-6c6def35d677/exportly-41dd6786-fb02-42f-813c-a4b6fd4520a5/Test_Export-results-count.csv",
                "size": "26"
            }
        ]
    },
    "stats": {
        "sizeInBytes": "46689",
        "exportedArtifactCount": "7",
        "totalArtifactCount": "7"
    },
    "name": "Test Export",
    ...
}

有兩種方法可以執行您需要的操作:

首先:
使用 OAuth 2.0 刷新和訪問密鑰,但是它需要用戶的干預,確認您的應用程序訪問。 您可以在此處找到 Google 提供的不錯的游樂場以及更多信息: https : //developers.google.com/oauthplayground/

  1. 您首先需要選擇所需的 API(在您的情況下,它是: https://www.googleapis.com/auth/devstorage.full_controll : https://www.googleapis.com/auth/devstorage.full_controll ,位於Cloud Storage JSON API v1部分下。
  2. 然后,您需要使用管理員帳戶登錄並單擊: “令牌的交換授權代碼” (字段“刷新令牌”“訪問令牌”將自動成為字段)。
  3. 最后,您需要選擇正確的 URL 來執行您的請求。 我建議使用“列出可能的操作”來選擇正確的 URL。 您需要在Cloud Storage API v1下選擇“Get Object - Retrieve the object” (注意有多個名稱為“Get Object”的選項,請務必選擇Cloud Storage API v1下的一個,而不是下一個雲存儲 JSON API v1 )。 現在只需在適當的占位符中輸入您的存儲桶和對象名稱,然后單擊Send the request

第二:
使用 Google 客戶端庫以編程方式下載它。 這是@darkfolcer建議的方法,但我認為 Google 提供的文檔是不夠的,因此並沒有真正的幫助。 如果 Python 示例會有所幫助,您可以在以下問題的答案中找到一個 - 如何在使用 Python API 創建文件后立即從 Google Vault 導出下載文件?

創建所有導出后,您需要等待它們完成。 您可以使用https://developers.google.com/vault/reference/rest/v1/matters.exports/list檢查事務中每個導出的狀態。 在響應中引用“exports”數組並檢查每個“status”的值,任何說“COMPLETED”的都可以下載。

要下載完成的導出,請轉到每個導出的“cloudStorageSink”對象,並獲取“files”數組中第一個條目的“bucketName”和“objectName”值。 您需要使用 Cloud Storage API 和這兩個值來下載文件。 此頁面包含所有流行語言和使用 API https://cloud.google.com/storage/docs/downloading-objects#storage-download-object-cpp 的代碼示例。

希望能幫助到你。

您看到的問題是因為 API 使用了最低權限原則

對您的影響是,由於您的目標是從導出中下載文件,您將獲得僅下載文件的權限,而不是整個存儲桶(即使它只包含這些文件)。

這就是為什么當您從存儲桶請求信息時,您會收到 403 錯誤(權限錯誤)。 但是,您確實有權下載存儲桶中的文件。 這樣,你應該做的是 直接獲取每個對象,做這樣的請求(使用問題上的信息):

GET https://storage.googleapis.com/storage/v1/b/408d9135-6155-4a43-9d3c-424f124b9474/o/a740999b-e11b-4af5-b8b1-6c6def35d677/exportly-41dd7886-fe02-432f-83c-a4b6fd4520a5/Test_Export-1.zip

因此,簡而言之,不是獲取完整存儲桶,而是獲取導出生成的每個單獨文件。

希望這可以幫助。

暫無
暫無

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

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