GCS签名URL客户端ID和示例代码理解

时间:2016-01-12 01:51:58

标签: google-app-engine

我正在尝试在我的代码中实现签名的URL。我试图理解和调试谷歌提供的以下代码。

https://cloud.google.com/storage/docs/access-control#signing-code-python

以下是我在Developers控制台中的客户端ID

zzzzzzzzzzzz-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.apps.googleusercontent.com

这是代码所期望的客户端ID吗?当我把它作为代码中的关键文本时,它会抛出“不支持RSA密钥格式”。任何投入都非常感谢,我是新手。

2 个答案:

答案 0 :(得分:1)

完整示例显示基本上要做什么:https://github.com/GoogleCloudPlatform/storage-signedurls-python

在云端控制台中,API>凭证>新凭据>服务帐户密钥>键类型> P12。这会下载.p12密钥

将密钥转换为PEM:

openssl pkcs12 -in /path/to/key.p12 -nodes -nocerts > /path/to/key.pem

将提示输入密码:notasecret

  

下载的私钥的名称是键的指纹。什么时候   检查计算机上的密钥,或使用密钥   应用程序,您需要提供密码notasecret。注意   而所有谷歌发行的私钥的密码是相同的   (notasecret),每个密钥都是加密唯一的

写RSA密钥:

openssl rsa -in /path/to/key.pem -inform PEM -out /path/to/key.der -outform DER

您想要提供的key.der密钥

with open('key.der', 'rb') as k:
    key = k.read()

然后

import Crypto.PublicKey.RSA as RSA
...
...
private_key = RSA.importKey(key)

答案 1 :(得分:0)

您可能需要考虑将gcloud-python用于Google云端存储,这为signing a URL提供了一种简便的方法。