Storage 移轉服務可將公開網址清單中的檔案複製到 Cloud Storage bucket。
建立移轉作業時,請提供以定位點分隔值 (TSV) 檔案的連結,其中包含要移轉的物件網址和詳細資料。TSV 檔案可以託管在任何可公開存取的 HTTP 或 HTTPS 位置,也可以儲存在 Cloud Storage bucket。
本頁說明如何建立網址清單,並將清單傳遞至工作建立指令。
來源檔案規定
- 網址必須可公開存取,且採用 HTTP 或 HTTPS 通訊協定。
- 託管各個物件的伺服器:
- 不得使用
robots.txt拒絕存取物件。 - 支援
Range要求。 - 在每個回應中傳回
Content-Length標頭。
- 不得使用
網址清單格式
網址清單必須符合下列規定:
- 檔案必須採用以定位點分隔值的格式。
- 網址必須按照 UTF-8 字典順序排列。
- 第一行必須指定
TsvHttpData-1.0。 - 從第二行開始,每行指定一個物件。
- 每列都必須包含網址,也可能包含檔案大小和物件的 base64 編碼 MD5 核對和。
以下是 TSV 檔案範例,指定了兩個要移轉的物件。請注意,這個頁面上的定位點會顯示為空格;在您自己的檔案中,請務必在欄位之間使用定位點。
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
每行包含:
- 來源物件的 HTTP 或 HTTPS 網址。
(選用) 物件大小,以位元組為單位。
請確認指定的大小與擷取時的實際大小相符。如果 Cloud Storage 收到的物件大小與指定大小不符,物件移轉作業就會失敗。
(選用) 物件的 MD5 核對和 (採用 Base64 編碼)。
確認指定的 MD5 核對和與從傳輸位元組計算出的 MD5 核對和相符。如果 Cloud Storage 收到的物件 MD5 核對和與指定的 MD5 核對和不符,物件移轉作業就會失敗。
雖然物件大小和 MD5 核對和值為選用,但強烈建議您加入這些值,確保資料完整性。
託管網址清單
網址清單可以託管在下列其中一個位置:
- 可公開存取的網址。
Cloud Storage bucket,且 Storage 移轉服務的服務代理已取得存取權。
公開網址
將網址清單儲存在可公開存取的網址時,須符合下列規定:
- 網址開頭必須為
http://或https://。 - 伺服器傳回網址清單時,必須在 HTTP 回應中設定強式
Etag標頭。
舉例來說,您可以將清單儲存在 Cloud Storage bucket,並公開共用物件,取得物件連結。
Cloud Storage bucket
為避免將清單儲存在公開位置,您可以將清單儲存在 Cloud Storage bucket,並將存取權授予 Storage 移轉服務的服務代理。
服務代理必須具備下列權限:
- 物件的
storage.objects.get權限。您可以透過授予 bucket 的roles/storage.objectViewer角色或自訂角色來授予這項權限。 - bucket 的
storage.buckets.get權限。您可以透過授予roles/storage.legacyBucketReader角色或自訂角色來授予這項權限。
如要將權限授予服務代理,請按照下列步驟操作:
找出服務代理的電子郵件地址
前往
googleServiceAccounts.get參考頁面。互動式面板隨即開啟,標題為「試用這個方法」。
在面板的「Request parameters」(要求參數) 下方,輸入專案 ID。您在此指定的專案必須是用來管理 Storage 移轉服務的專案,可能與網址清單值區的專案不同。
點選「Execute」。
服務代理的電子郵件會以 accountEmail 的值傳回,並使用 project-PROJECT_NUMBER@storage-transfer-service. 格式。
複製這個值。
授予必要角色
如要將 roles/storage.objectViewer 角色和 roles/storage.legacyBucketReader 角色授予 bucket (包含網址清單) 的服務代理,請按照「設定及管理 bucket 的 IAM 政策」中的操作說明進行。
您要新增的主體是服務代理的電子郵件地址。如有需要,主體 ID 為 serviceAccount。例如:serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.。
建立網址清單移轉工作
如要在建立移轉工作時指定網址清單,請按照下列操作說明進行:
Google Cloud 控制台
按照「建立轉移工作」中的指示操作。
選擇來源時:
在「來源類型」下方,選取「網址清單」,然後點選「下一步」。
在「URL of TSV file」(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 參考資料。