Signurl 命令需要 Google 存储中 gsutil 中的 pyopenssl 库来创建签名 URL

问题描述 投票:0回答:7

我正在尝试使用 gsutil 创建签名 URL。 以下是命令 $ gsutil signurl -d 10m 路径/to/privatekey.p12 gs://bucket/foo

网站中提到https://developers.google.com/storage/docs/accesscontrol

我还使用我的存储桶名称和对象发出了相同的命令,如下所示

gsutil signurl -d 10m C:\Users\Desktop\javascript\service e263da.p12 gs://code-sample/File1

但我收到以下错误

“signurl 命令需要 pyopenssl 库,请尝试 pip install pyopenssl 或 easy_install pyopenssl"

.所以,我从这里安装了用于窗口的 PyOpenSSL

https://pypi.python.org/pypi/pyOpenSSL/0.13。我的python版本是2.6。在运行命令时我仍然遇到同样的错误。所以我的问题是为什么在 gsutil 中安装 pyopenssl 后仍然无法识别命令signurl

google-cloud-storage python-2.6 pyopenssl
7个回答
4
投票

安装

pip3 install --user pyopenssl

它应该可以工作(特别是如果您在云控制台中运行)!


2
投票

收到此错误并尝试了各种 python pyopenssl 选项,但这最终对我有用: Debian 10 与 谷歌云 SDK 345.0.0 gsutil 版本:4.63

sudo apt-get install python3-openssl


1
投票

我在使用 Python v3.7.5 和 gsutil v4.46 时遇到了同样的问题。

为了解决我为 Python 2 安装了

pyopenssl
的问题:
pip2 install --user pyopenssl


0
投票

问题可能是因为您使用的是 64 位系统和 python 使用 egenix-pyopenssl-0.13.4.1.0.1.9.win32-py2.7 - 32 位和 python 32 位为我解决了这个问题...甚至谷歌文档也建议使用 32 位


0
投票

我正在运行 Python 2.7,也遇到同样的问题。 ProcMon 显示正在执行捆绑的 Python (%LOCALAPPDATA%\Google\Cloud SDK\google-cloud-sdk\platform undledpython\python.exe),而不是路径变量中的 Python。

我重命名了“bundledpython”目录并重新运行“gsutil signurl”,它运行成功。

注意:这是在安装加密库之后(https://cloud.google.com/sdk/crypto


0
投票

最新版本的 pyopenssl (2.23.3) 似乎已损坏 gsutil:https://github.com/GoogleCloudPlatform/gsutil/issues/1753 如果您遇到这种情况,您可能想恢复到旧版本。


-1
投票

问题根源于

gsutil
shell 脚本和 python 库。
gsutil
脚本需要 Python 2。

pip3 uninstall pyOpenSSL
pip2 install pyOpenSSL

完成上述操作后,我可以使用

gsutil

成功签署 URL
© www.soinside.com 2019 - 2024. All rights reserved.