您如何在Google云端存储中将许多文件设为私有?

时间:2018-07-18 15:00:18

标签: python google-cloud-platform google-cloud-storage

我进行了很多研究,无法为此找到解决方案。这是我用来在GCP中公开所有文件的代码:

def make_blob_public(bucket_name, blob_name):
    """Makes a blob publicly accessible."""
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)

blob.make_public()

上述方法有效,但是当我编写blob.make_private()将所有文件设为私有时,出现错误:AttributeError:'Blob'对象没有属性'make_private'

在此链接上:

https://googlecloudplatform.github.io/google-cloud-python/latest/storage/blobs.html

我既可以找到make_public()也可以找到make_private(),但只有make_public()有效。

1 个答案:

答案 0 :(得分:3)

make_private已添加到Storage client library的1.10版本中。检查您正在使用pip list使用哪个版本,因为您必须使用其他版本,并尽可能升级。

尽管如此,如果您无法升级(假设您的开发环境已“绑定”到该版本的库),我将在一个开发环境(版本1.8.0)中使用另一个版本对其进行测试。 ,并且如果您遵循make_private的源代码并在代码中执行了这两行,那么它将起作用。因此,像这样:

#blob.make_private() is basically:

blob.acl.all().revoke_read()
blob.acl.save(client=blob.client)