Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 谷歌云函数抛出404错误_Google Cloud Platform_Google Cloud Functions_Google Cloud Storage - Fatal编程技术网

Google cloud platform 谷歌云函数抛出404错误

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

我创建了一个云函数,该函数设置为由Google云存储桶上的Finalize/Create事件触发

我将10k个图像转储到bucket中,大多数图像都成功运行了云功能,而有些图像抛出了以下异常,我只是不知道是什么导致了这个错误

错误是返回404,但当我检查bucket时,图像就在那里。是否有人具有修复以下异常的经验

出于某种原因,云函数正在检查一个不存在的目录

它应该检查以下目录:

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)“你能添加足够的代码使其可复制吗。这也将为我们提供更多的帮助