gpt4 book ai didi

python - 使用 Python api 客户端在 Google Cloud Storage Bucket 中提取 zip 存档

转载 作者:行者123 更新时间:2023-12-01 02:24:21 24 4
gpt4 key购买 nike

我正在尝试使用 api 创建云函数,源代码将在 zip 存档中提供,其中包含 index.jspackage.json 文件。我已将此存档上传到存储桶并通过 API 请求创建云函数,但现在我需要提取此 zip 存档以指出云函数的来源,我该如何实现?

这是我所做的:来自views.py

            sclient = storage.Client()
bucket = sclient.get_bucket(func_obj.bucket)
blob = bucket.blob(func_obj.sourceFile.name)
print('Uploading archive...')
print(blob.upload_from_filename(file_name))
name = "projects/{}/locations/us-central1/functions/{}".format(func_obj.project, func_obj.fname,)
print(name)
req_body = {
"name": name,
"entryPoint": func_obj.entryPoint,
"timeout": "3.5s",
"availableMemoryMb": func_obj.fmemory,
# "sourceUploadUrl": upload_url,
"sourceArchiveUrl": "gs://newer_bucket/func.zip",
"httpsTrigger": {},
}
service = discovery.build('cloudfunctions', 'v1')
func_api = service.projects().locations().functions()

response = func_api.create(location='projects/' + func_obj.project + '/locations/us-central1',
body=req_body).execute()

pprint.pprint(response)

最佳答案

根据Cloud Function Docsfunctions.create REST 端点的请求正文必须包含 CloudFunction 的实例。正如您在第二个链接中看到的,云函数 JSON 资源的字段之一是 "sourceArchiveUrl",它指向包含该函数的 zip 存档。据我了解,您不需要为 Google Cloud Functions 提取 zip 存档来访问代码。检查non-REST API deployment of Cloud Functions ;它需要存档,而不是提取的存档。

但无论如何,没有直接的方法可以提取存储桶内的存档。您需要将存档下载/传输到某个地方(即本地计算机、Google Compute Engine VM 实例等),对其执行提取操作并将结果上传回存储桶中。如果您需要提取存档,为什么还要将其上传到 Google Cloud Storage 存储桶?为什么不上传文件?

您可能想检查 this answer以及。相同的问题,不同的上下文。

关于python - 使用 Python api 客户端在 Google Cloud Storage Bucket 中提取 zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47545993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com