Storage 移轉服務可將檔案從公開網址清單複製到 Cloud Storage 值區。
建立轉移作業時,您必須提供定位點分隔值 (TSV) 檔案的連結,其中包含要轉移物件的網址和詳細資料。TSV 檔案可託管於任何可公開存取的 HTTP 或 HTTPS 位置,也可以儲存在 Cloud Storage 值區中。
本頁面說明如何建立網址清單,並將其傳遞至工作建立指令。
來源檔案相關規定
- 網址必須可供公開存取,且使用 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 值區。
公開存取的網址
將網址清單儲存在可供公開存取的網址時,必須符合下列規定:
- 網址開頭必須是
http://
或https://
。 - 伺服器傳回網址清單時,必須在 HTTP 回應中設定強制
Etag
標頭。
例如,您可以將清單儲存在 Cloud Storage 值區中,然後公開共用物件,取得該物件的連結。
Cloud Storage 值區
為避免將清單儲存在公開位置,您可以將清單儲存在 Cloud Storage 值區中,並授予 Storage 移轉服務的服務代理人存取權。
服務代理必須具備下列權限:
- 物件的
storage.object.get
權限。您可以授予值區的roles/storage.legacyObjectReader
角色,或是自訂角色,藉此授予此權限。 - 值區的
storage.buckets.get
權限。您可以授予roles/storage.legacyBucketReader
角色,或使用自訂角色來授予此權限。
如要將權限授予服務代理,請按照下列步驟操作:
找出服務代理人的電子郵件地址
前往
googleServiceAccounts.get
參考頁面。系統會開啟名為「試試這個方法」的互動式面板。
在面板的「Request parameters」下方,輸入專案 ID。您在此處指定的專案必須是用於管理 Storage Transfer Service 的專案,可能與網址清單值區的專案不同。
按一下 [Execute] (執行)。
服務專員的電子郵件地址會傳回為 accountEmail
的值,並使用 project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
格式。
複製這個值。
授予必要角色
如要在包含網址清單的儲存桶上,將 roles/storage.objectViewer
角色和 roles/storage.bucketViewer
角色授予服務代理,請按照「在儲存桶上設定及管理 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 參考資料。