将文件从git传输到谷歌云存储桶

时间:2017-10-21 08:38:16

标签: git google-cloud-datastore google-cloud-platform google-cloud-storage gcloud

我们有什么方法可以将git中的文件直接上传到谷歌云存储桶吗?

我尝试使用以下命令:

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

但它给我一个错误:

  

InvalidUrlError:无法识别的方案" https"。

我可以通过其他方式将内容上传到此内容吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分: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仓库直接复制。但应该注意的是,它只能在菊花链模式下工作。来自Options

  

-D

     

以“菊花链”模式复制,即在两个存储桶之间复制   通过运行gsutil的机器将下载挂钩到上传。   这与默认情况相反,在默认情况下复制数据   两个桶“在云中”,即无需通过   gsutil运行的机器。

     

[...]

     

注意:复制时会自动使用菊花链模式   提供商(例如,将数据从Google云端存储复制到另一个   提供者)。

但是,因为在这种情况下,数据必须通过运行gsutil的本地机器,在本地克隆git repo然后使用未修改的gsutil从本地上传时可能更简单回购桶:)