Google cloud platform 谷歌云函数抛出404错误
我创建了一个云函数,该函数设置为由Google云存储桶上的Finalize/Create事件触发 我将10k个图像转储到bucket中,大多数图像都成功运行了云功能,而有些图像抛出了以下异常,我只是不知道是什么导致了这个错误 错误是返回404,但当我检查bucket时,图像就在那里。是否有人具有修复以下异常的经验 出于某种原因,云函数正在检查一个不存在的目录 它应该检查以下目录:Google cloud platform 谷歌云函数抛出404错误,google-cloud-platform,google-cloud-functions,google-cloud-storage,Google Cloud Platform,Google Cloud Functions,Google Cloud Storage,我创建了一个云函数,该函数设置为由Google云存储桶上的Finalize/Create事件触发 我将10k个图像转储到bucket中,大多数图像都成功运行了云功能,而有些图像抛出了以下异常,我只是不知道是什么导致了这个错误 错误是返回404,但当我检查bucket时,图像就在那里。是否有人具有修复以下异常的经验 出于某种原因,云函数正在检查一个不存在的目录 它应该检查以下目录: https://storage.googleapis.com/download/storage/v1/b/hidde
https://storage.googleapis.com/download/storage/v1/b/hidden-name/images%2F3683740a95fa3600d4d9a220c9e0b472.jpg
但是,它正在检查以下不存在的目录(/o
文件夹不存在):
这是我得到的一个例外:
回溯(最近一次调用上次):文件
“/env/local/lib/python3.7/site packages/google/cloud/storage/blob.py”,
第721行,在下载到文件传输中,文件对象,下载url,
标题、开始、结束、原始下载文件
“/env/local/lib/python3.7/site packages/google/cloud/storage/blob.py”,
第645行,在_do_download download.consume(传输)文件中
“/env/local/lib/python3.7/site packages/google/resumable_media/requests/download.py”,
第153行,在consume self.\u process\u response(结果)文件中
“/env/local/lib/python3.7/site packages/google/resumable\u media/\u download.py”,
第171行,过程中响应,可接受状态代码,
self.\u获取\u状态\u代码文件
“/env/local/lib/python3.7/site packages/google/resumable\u media/\u helpers.py”,
第96行,要求状态代码*状态代码
google.resubable_media.common.InvalidResponse:(“请求失败,错误为”
状态代码',404'应为',
)在处理上述问题时
异常,发生另一个异常:回溯(最近的调用
最后):文件
“/env/local/lib/python3.7/site packages/google/cloud/functions/worker.py”,
第383行,运行\后台\功能
_函数\处理程序。调用\用户\函数(事件\对象)文件“/env/local/lib/python3.7/site packages/google/cloud/functions/worker.py”,
第217行,在invoke_user_函数返回中
调用用户函数(请求或事件)文件
“/env/local/lib/python3.7/site packages/google/cloud/functions/worker.py”,
第214行,调用用户函数
事件上下文(**请求上下文或事件上下文))文件
“/user\u code/main.py”,第44行,用于每个新图像
创建\u thumb\u移动\u到\u thumbs\u bucket(bucket\u name,blob\u name)文件
“/user\u code/main.py”,第56行,在create\u thumb\u move\u to\u thumbs\u bucket中
bucket中的blob_。下载到文件名(下载tmp_文件路径)文件
“/env/local/lib/python3.7/site packages/google/cloud/storage/blob.py”,
第761行,下载到文件名raw\u download=raw\u下载,文件
“/env/local/lib/python3.7/site packages/google/cloud/storage/blob.py”,
第724行,在下载到文件中,从无效响应(exc)文件中提出
“/env/local/lib/python3.7/site packages/google/cloud/storage/blob.py”,
第2161行,来自无效响应提升的提升
异常。来自\u http\u状态(response.status\u代码、消息、,
response=response)google.api_core.exceptions.NotFound:404get
:
('Request failed with status code',404'应为',
,)
云函数输入方法:
def for_each_new_image(event, context):
blob_name = event['name'].lower()
bucket_name = event['bucket']
create_thumb_move_to_thumbs_bucket(bucket_name,blob_name)
引发错误的方法:
def create_thumb_move_to_thumbs_bucket(bucket_name,blob_name):
bucket = _storage_client.get_bucket(bucket_name)
blob_in_bucket = bucket.blob(blob_name)
blob_name = blob_name.replace("ugc_images/","")
thumbnail_filename = blob_name.replace(".","-sm.")
thumbnail_tmp_filepath = '/tmp/{}'.format(thumbnail_filename)
download_tmp_filepath = '/tmp/{}'.format(blob_name)
blob_in_bucket.download_to_filename(download_tmp_filepath)
blob_in_bucket.download_to_filename(download_tmp_filepath)
引发错误的行:
def create_thumb_move_to_thumbs_bucket(bucket_name,blob_name):
bucket = _storage_client.get_bucket(bucket_name)
blob_in_bucket = bucket.blob(blob_name)
blob_name = blob_name.replace("ugc_images/","")
thumbnail_filename = blob_name.replace(".","-sm.")
thumbnail_tmp_filepath = '/tmp/{}'.format(thumbnail_filename)
download_tmp_filepath = '/tmp/{}'.format(blob_name)
blob_in_bucket.download_to_filename(download_tmp_filepath)
blob_in_bucket.download_to_filename(download_tmp_filepath)
我也犯了同样的错误。
我试图访问一个存储桶中不存在的文件。您是否已将同一文件上载两次?即使对象被覆盖,也会触发对象Finalize。如果我单击第二个URL,它会显示{“error”:{“code”:400,“message”:“只有媒体下载请求可以发送到/download/*。将请求重新发送到同一路径,但不带/download前缀。”,“errors”:[{“message”:“只能将媒体下载请求发送到/download/*。将请求重新发送到同一路径,但不带/download前缀。”,“域”:“全局”,“原因”:“notDownload”}]}@VikramShinde不,所有的图片都是独一无二的。我还将URL设为虚拟,这意味着它们不是livecan您可以与我们共享您的代码吗?@Chris32没有添加所有的代码行,而是添加了抛出异常的方法/行:“blob_in_bucket.download_to_filename(download_tmp_filepath)“你能添加足够的代码使其可复制吗。这也将为我们提供更多的帮助