Storage 移轉服務可將檔案從公開網址清單複製到 Cloud Storage 值區。
建立轉移作業時,請提供定位點分隔值 (TSV) 檔案的連結,該檔案包含要轉移物件的網址和詳細資料。TSV 檔案可託管於任何可公開存取的 HTTP 或 HTTPS 位置,也可以儲存在 Cloud Storage bucket 中。
本頁說明如何建立網址清單,並將其傳遞至工作建立指令。
來源檔案規定
- 網址必須可供公開存取,並使用 HTTP 或 HTTPS 通訊協定。
- 每個物件的代管伺服器:
- 不得使用
robots.txt拒絕存取物件。 - 支援
Range要求。 - 在每個回應中傳回
Content-Length標頭。
- 不得使用
網址清單格式
網址清單必須符合下列規定:
- 檔案格式必須為定位點分隔值。
- 網址必須採用 UTF-8 字典順序。
- 第一行必須指定
TsvHttpData-1.0。 - 第一行之後,每列指定一個物件。
- 每個資料列都必須包含網址,且可能包含檔案大小和物件的 Base64 編碼 MD5 總和檢查碼。
以下是範例 TSV 檔案,指定要轉移的兩個物件。請注意,這個頁面上的 Tab 鍵會顯示為空格;在您自己的檔案中,請務必在欄位之間使用 Tab 鍵。
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
每行包含:
- 來源物件的 HTTP 或 HTTPS 的網址。
(選用) 物件大小 (以位元組為單位)。
請確認指定的大小符合物件在擷取時的實際大小。如果 Cloud Storage 收到的物件大小與指定大小不符,物件移轉就會失敗。
(選用) 物件的 Base64 編碼 MD5 檢查碼。
指定的 MD5 檢查碼必須與移轉後位元組計算所得的 MD5 檢查碼相符。如果 Cloud Storage 接收到的物件 MD5 總和檢查碼與指定的 MD5 總和檢查碼不符,物件移轉就會失敗。
物件大小和 MD5 總和檢查碼值為選填,但強烈建議您填寫,以確保資料完整性。
代管網址清單
網址清單可代管於下列其中一個位置:
- 可公開存取的網址。
已授予 Storage 移轉服務服務代理存取權的 Cloud Storage bucket。
可公開存取的網址
將網址清單儲存在可公開存取的網址時,必須符合下列規定:
- 網址開頭必須為
http://或https://。 - 伺服器傳回網址清單時,必須在 HTTP 回應中設定高強度的
Etag標頭。
舉例來說,您可以將清單儲存在 Cloud Storage 值區中,並公開共用物件來取得該物件的連結。
Cloud Storage 值區
為避免將清單儲存在公開位置,您可以將清單儲存在 Cloud Storage 值區中,並授予 Storage 移轉服務的服務代理程式存取權。
服務代理必須具備下列權限:
- 物件的
storage.object.get權限。如要授予這項權限,請在 bucket 中授予roles/storage.legacyObjectReader角色,或使用自訂角色。 - bucket 的
storage.buckets.get權限。您可以授予roles/storage.legacyBucketReader角色,或使用自訂角色授予這項權限。
如要將權限授予服務代理,請按照下列步驟操作:
尋找服務專員的電子郵件
前往
googleServiceAccounts.get參考頁面。系統會開啟互動式面板,標題為「試試這個方法」。
在面板的「要求參數」下方,輸入專案 ID。您在此指定的專案必須是用來管理 Storage Transfer Service 的專案,可能與網址清單值區的專案不同。
點選「Execute」。
服務專員的電子郵件地址會以 accountEmail 的值傳回,並採用 project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com 格式。
複製這個值。
授予必要角色
如要將 roles/storage.objectViewer 角色和 roles/storage.bucketViewer 角色授予含有網址清單的 bucket 服務代理,請按照「在 bucket 上設定及管理 IAM 政策」一文中的操作說明進行。
您要新增的委託人是服務代理人的電子郵件地址。如果需要,主體 ID 為 serviceAccount。例如:serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com。
建立網址清單移轉工作
如要在建立轉移工作時指定網址清單,請按照下列操作說明操作:
Google Cloud 控制台
按照「建立移轉工作」的指示操作。
選擇來源時,請注意以下事項:
在「來源類型」下方,選取「網址清單」,然後點選「下一步」。
在「TSV 檔的網址」下方,提供定位點分隔值 (TSV) 檔案的網址。網址可以是 HTTP/HTTPS 位址 (例如
https://example.com/urllist.tsv),也可以是 Cloud Storage 路徑 (例如gs://my-bucket/urllist.tsv)。
gcloud CLI
如要建立新的移轉工作,請使用 gcloud transfer jobs create 指令。
gcloud transfer jobs create \
SOURCE DESTINATION
如果是網址清單轉移作業,SOURCE 的值就是 TSV 檔案的網址。網址可以是 HTTP/HTTPS 位址 (例如 https://example.com/urllist.tsv),也可以是 Cloud Storage 路徑 (例如 gs://my-bucket/urllist.tsv)。
如要進一步瞭解如何使用 gcloud CLI 建立移轉作業,請參閱「建立移轉作業」。
REST
如要使用 REST API 建立網址清單移轉工作,請在 listUrl 欄位中指定 TSV 檔案的網址:
{
"projectId": "PROJECT_ID",
"transferSpec": {
"httpDataSource": {
"listUrl": "URL"
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
}
},
"status": "ENABLED"
}
URL 的值可以是 HTTP/HTTPS 位址 (例如 https://example.com/urllist.tsv),也可以是 Cloud Storage 路徑 (例如 gs://my-bucket/urllist.tsv)。
如要進一步瞭解如何使用 REST API 建立轉移作業,請參閱 REST API 參考資料。