我正在使用 cloudflare cd 为我的网站提供我所有的静态文件和 gcs 上的下载,并且我正在使用 GCS pytho 库来生成签名的 url v4 如果用户想从我的网站下载一些文件问题是当我使用此功能时来自 google 的 generate_download_signed_url_v4 它给了我带有链接的签名 url 和https://storage.googleapis.com/my_bucket/ ....... 我想用我自己的子域 ex 更改此链接。download.doamin.com 我发现我必须使用 bucket_bound_hostname 但是当我使用它并尝试使用给定的 url 下载时,我收到了这条消息
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
</Error>
这就是我使用的功能
def generate_download_signed_url_v4(bucket_name, blob_name):
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(blob_name)
url = blob.generate_signed_url(
version="v4",
# This URL is valid for ...
expiration=datetime.timedelta(minutes=10),
# Allow GET requests using this URL.
method="GET",
bucket_bound_hostname="mysub.domain.com",
scheme='https'
)
return url
PS。我在 c.storage.googleapis.com 的 dns 设置中添加了 Cname