2

Googleのクラウドストレージバケットにgitでファイルを直接アップロードする方法はありますか?gitからgoogleクラウドストレージバケットにファイルを転送する

私は、以下のコマンドを使用して試してみました:

gsutil cp https://Link.git gs://bucketname 

をしかし、それはのように私にエラーを与える:

InvalidUrlError: Unrecognized scheme "https".

私はこれにコンテンツをアップロードすることができ、他の方法はありますか?

ご協力いただきありがとうございます。

答えて

1

google-cloud-sdk/platform/gsutil/gslib/storage_url.pyで、フードショーの下であなたが得たエラーメッセージの(おそらく)トリガー覗く:

def _GetSchemeFromUrlString(url_str): 
    """Returns scheme component of a URL string.""" 

    end_scheme_idx = url_str.find('://') 
    if end_scheme_idx == -1: 
    # File is the default scheme. 
    return 'file' 
    else: 
    return url_str[0:end_scheme_idx].lower() 

[...]

def StorageUrlFromString(url_str): 
    """Static factory function for creating a StorageUrl from a string.""" 

    scheme = _GetSchemeFromUrlString(url_str) 

    if scheme not in ('file', 's3', 'gs'): 
    raise InvalidUrlError('Unrecognized scheme "%s"' % scheme) 

基本的なツールはしていません一般的なURLをサポートしています。

もちろん、git repoからの直接コピーを実際にサポートするためにツールを強化することができます。しかし、それはdaisychainモードでのみ機能することに注意する必要があります。 Optionsから:

-D

Copy in "daisy chain" mode, i.e., copying between two buckets by hooking a download to an upload, via the machine where gsutil is run. This stands in contrast to the default, where data are copied between two buckets "in the cloud", i.e., without needing to copy via the machine where gsutil runs.

[...]

Note: Daisy chain mode is automatically used when copying between providers (e.g., to copy data from Google Cloud Storage to another provider).

しかし、このような場合にはデータがgsutilを実行しているローカルマシンに通過しなければならないので、それだけでローカルのgitリポジトリのクローンを作成し、その地元のレポからアップロードする無修正gsutilを使用するように、おそらく簡単ですバケットに:)

関連する問題