使用 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代码
我以前没有遇到过这个问题。
您的组织有 软删除保留策略。
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)