![](/img/trans.png)
[英]How to download files from Google Vault export immediately after creating it with Python API?
[英]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/ 。
https://www.googleapis.com/auth/devstorage.full_controll
: https://www.googleapis.com/auth/devstorage.full_controll
,位於Cloud Storage JSON API v1部分下。 第二:
使用 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.