问题描述
我是 Google Cloud API 的新手,并且在解决几个问题:
- 我已使用 https://zatackcoder.com/upload-file-to-google-cloud-storage-using-php/ 逐字记录的示例项目成功将图像上传到我的 Google Cloud“存储桶”。除了将我自己的凭据放入源代码之外,没有任何更改。成功后,Google 会返回以下对象详细信息:
kind "storage#object"
id "my_test_bucket/uploads/Europe-Map.png/5555226335851276"
selfLink "https://www.googleapis.com/storage/v1/b/my_test_bucket/o/uploads%2FEurope-Map.png"
mediaLink "https://www.googleapis.com/download/storage/v1/b/my_test_bucket/o/uploads%2FEurope-Map.png?generation=5555226335851276&alt=media"
name "uploads/Europe-Map.png"
bucket "my_test_bucket"
generation "5555226335851276"
Metageneration "1"
contentType "image/png"
storageClass "STANDARD"
size "782467"
md5Hash "TPmaAjp5ub1jxIQChhOAsQ=="
crc32c "PFU5yw=="
etag "CAyMp/aioe8CEAE="
retentionExpirationTime "2120-03-09T11:58:35.882Z"
timeCreated "2021-03-08T17:58:35.882Z"
updated "2021-03-08T17:58:35.882Z"
timeStorageClassUpdated "2021-03-08T17:58:35.882Z"
我可以从 Google Cloud 控制台看到新文件,但无法从控制台删除它。当我尝试时,我收到了非常有用的消息:“无法删除文件”。
我想这与 ACU 或其他安全性有关,但作为存储桶的所有者,从云控制台本身,我不应该总是能够删除任何和所有文件吗?
解决方法
我发现了问题 - 当我尝试以编程方式删除它时出现了一条错误消息:“对象 <...> 受存储桶的保留策略约束,并且无法删除、覆盖或存档直到”
所以我进入了我的谷歌云控制台上的存储桶定义并选择了“保留”选项卡,并能够将保留时间设置为 1 秒(它设置为 99 年,禁止对对象进行任何类型的编辑 99 年上传后!)