URL から GCP バケットにダウンロード

URL から GCP バケットにダウンロード

大きなファイルを指す URL がある場合、そのファイルをローカルにダウンロードしてからアップロードせずに、バケットに取り込むためのショートカットはありますか?

タスクを実行する Docker イメージを構築し、それを何らかの方法で GCP で実行する以外に、もっと簡単な方法はありますか?

答え1

前述の通り、リンク

1: curl コマンドを使用して、データをバケットに直接ストリーミングすることでこれを実行できます。

curl http://speedtest.tele2.net/10GB.zip | gsutil cp -gs://YOUR_BUCKET_NAME/10GB.zip

2: 4.6 GB 未満のファイル。

オリジナルのアプローチ: ダウンロードが 4.6 GB 未満であれば、この方法は有効です。Cloud Shell (GCP でプロジェクトにログインした後、右上の最初のアイコン) を起動し、wget を使用して必要なファイルをダウンロードします。たとえば、7-Zip をダウンロードするには、次のように入力します: wget https://www.7-zip.org/a/7z1805-x64.exeこれで、Cloud Shell ユーザー ホームにファイルが作成され、gsutil コマンドを使用して Google Cloud Storage バケットにコピーできるようになります。

gsutil cp ./7z1805-x64.exe gs://your_bucket_name/

3: 4.6 GB を超えるファイル。

Cloud Shell ユーザーホームにディレクトリを作成するmkdir ~/mybucket

次に、gcsfuse を使用してそのディレクトリにバケットをマウントします。

gcsfuse bucket_name ~/mybucket

現在のディレクトリをマウント ポイント ディレクトリに変更しますcd mybucket(マウント ポイントにどれだけのスペースがあるかを確認するには、「df -h .」を実行します)。次に、wget を使用してファイルをバケットに直接取得します (Web から取得した 10 GB のファイルを使用したサンプル):

wget https://speed.hetzner.de/10GB.bin

詳細については、ドキュメンテーションストレージ転送サービスとURLリスト

答え2

Google Cloud Storage では、URL からオブジェクトを読み込む機能は提供されていません。

独自のコードを記述するか、CLIまたは次のようなマネージドサービスを使用する必要があります。ストレージ転送サービス

関連情報