“604800”违反约束“constraints/storage.softDeletePolicySeconds”

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

使用 python 代码创建 GCS 存储桶时,出现以下错误

    cmd = "gcloud auth application-default login >$null 2>&1"
    returned_value = subprocess.call(cmd, shell=True)
    # Initialize the client
    storage_client = storage.Client(project="03114")
    # Bucket name and region
    bucket_name = "automationbuckettesting-name"
    region_name = "us-west1"
    bucket = storage_client.create_bucket(bucket_name,location=region_name)

错误: “604800”违反了约束“constraints/storage.softDeletePolicySeconds”

我正在寻找创建存储桶的Python代码

python google-cloud-storage
1个回答
0
投票

我以前没有遇到过这个问题。

您的组织有 软删除保留策略

604800(秒)是7天。

根据文档,“设置后,存储桶软删除策略必须包含指定的持续时间之一。”

我认为解决方案是以不同的方式创建存储桶:

import os

from google.cloud import storage


PROJECT = os.getenv("PROJECT")
LOCATION = os.getenv("LOCATION")
BUCKET = os.getenv("BUCKET")


storage_client = storage.Client(project=PROJECT)

bucket = storage_client.bucket(BUCKET)
bucket.soft_delete_policy.retention_duration_seconds = 604800
bucket.create(location=LOCATION)

产量:

gcloud storage buckets list --project=${PROJECT} \
--format="yaml(name,soft_delete_policy.retentionDurationSeconds)"
name: {bucket}
soft_delete_policy:
  retentionDurationSeconds: '604800'

你的序言是一种反模式。 应用程序默认凭据旨在(并且应该)从您的代码中排除。如果您的代码被部署到例如Google Cloud 计算服务,您的代码原样将会失败。删除这些行将提高代码的可移植性:

cmd = "gcloud auth application-default login >$null 2>&1"
returned_value = subprocess.call(cmd, shell=True)
© www.soinside.com 2019 - 2024. All rights reserved.