在 MacOS 上运行 gsutil

Posted

技术标签:

【中文标题】在 MacOS 上运行 gsutil【英文标题】:Running gsutil on MacOS 【发布时间】:2018-02-14 10:39:32 【问题描述】:

我正在尝试使用 gsutil 根据 google 使用最新版本的 MacOS 的说明在我的 firebase 存储桶上设置 CORS。我不确定是我没有正确安装 gsutil 还是我不明白的其他东西,但是当我运行 gsutil cors set cors.json gs://docavea2.appspot.com 时,我收到以下错误:

Setting CORS on gs://docavea2.appspot.com/...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/jr/google-cloud-sdk/platform/gsutil/gslib/__init__.py", line 119, in <module>
    CHECKSUM_FILE, CHECKSUM = _GetFileContents('CHECKSUM')
  File "/Users/jr/google-cloud-sdk/platform/gsutil/gslib/__init__.py", line 107, in _GetFileContents
    content = pkgutil.get_data('gslib', filename)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 591, in get_data
    return loader.get_data(resource_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 255, in get_data
    return open(pathname, "rb").read()
IOError: [Errno 2] No such file or directory: '/Users/jr/google-cloud-sdk/platform/gsutil/gslib/CHECKSUM'

我认为我的 cors.json 很好,因为当我在 Windows 上将它与 gsutil 一起使用时,它工作正常并且 CORS 设置正确,但这是内容:

[
    
        "origin": ["*"],
        "method": ["GET"],
        "maxAgeSeconds": 3600
    
]

我在 *** 上看到有人说如果他把 [ 放在同一行,这对他有用,但对我来说没有任何区别。

【问题讨论】:

这是一个 pkgutil 问题,而不是您的 CORS 文件的问题。 /Users/jr/google-cloud-sdk/platform/gsutil/gslib/CHECKSUM 是否真的存在于您的系统中? 【参考方案1】:

我发现 CHECKSUM 安装在 /Users/jr/google-cloud-sdk/platform/gsutil.

在我把它复制到 /Users/jr/google-cloud-sdk/platform/gsutil/gslib/ 它可以工作。

【讨论】:

【参考方案2】:

对我有用的是将 google-cloud-sdk 重新安装到我的主目录 (Users/sam/google-cloud-sdk)。它在下载文件夹中。

【讨论】:

以上是关于在 MacOS 上运行 gsutil的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 PHP exec 运行 gsutil

RequestsDependencyWarning:运行 gsutil 命令时

在计算引擎上从 PHP 的 exec() 调用时,gsutil 不起作用

在 python 脚本中运行 gcloud auth 和 gsutil 命令

如何确保 gsutil 复制不使用外部 Internet?

在 Google Cloud 函数中运行 gsutil 命令