如何將文件從遠程服務器複製到谷歌存儲桶?例如,將文件從遠程服務器複製到谷歌雲存儲桶
gcloud compute scp [email protected]:/path/to/file gs://my-bucket
此方法給出了錯誤:All sources must be local files when destination is remote.
此外,GSUtil的僅提供用於CP和不SCP支持。
在此先感謝!
如何將文件從遠程服務器複製到谷歌存儲桶?例如,將文件從遠程服務器複製到谷歌雲存儲桶
gcloud compute scp [email protected]:/path/to/file gs://my-bucket
此方法給出了錯誤:All sources must be local files when destination is remote.
此外,GSUtil的僅提供用於CP和不SCP支持。
在此先感謝!
您也可以直接在您的GCE虛擬機上執行gsutil
命令(大多數虛擬機映像預先安裝了Cloud SDK)。例如:
gcloud compute ssh [email protected] --zone my_zone \
--command='gsutil cp path/to/my_file gs://MY_BUCKET'
請注意,爲此,與VM相關聯的服務帳戶必須具有適當的GCS訪問範圍。如果您運行
gcloud beta compute instances describe my_instance --zone my_zone \
--format="value(serviceAccounts.scopes)"
它會顯示VM服務帳戶設置範圍清單。確保你有https://www.googleapis.com/auth/cloud-platform
或https://www.googleapis.com/auth/devstorage.full_control
或https://www.googleapis.com/auth/devstorage.read_write
。如果沒有,您可以使用 set-scopes beta command重置它們或轉到控制檯並編輯有問題的虛擬機。
的gsutil支持流數據,所以你可以嘗試管道入數據。
不是100%肯定這可與任意的二進制數據(我在手機上,所以我不能測試它)
gcloud compute ssh [email protected] --command='cat /path/to/file' | gsutil cp - gs://my-bucket
啊,好主意,這比通過本地主機管道一切都高效得多。只有注意,只要記住,這將使用GCE VM上的gsutil配置,而不是本地配置。特別是它可能會使用GCE VM的服務帳戶憑證而不是您的個人憑證。這並不一定是壞的,只是需要注意的一點。 (如果您的個人憑證無法直接訪問存儲桶,則可能更可取,這是一項很好的安全措施。) –