我制作了一个C++程序,它生活在gke中,使用ffmpeg将一些视频作为输入,然后使用opengl对该输入做一些操作,最后将这些编辑过的视频编码为单个输出。通常情况下,程序在我的本地机器上运行的非常好,它的编码就像我希望它在没有任何警告的情况下一样。但我希望它使用gcsfuse桶将视频直接编码到云端。我成功地挂载了这个桶,它似乎在我的程序运行开始时创建了这个文件。但是当运行结束时,它应该完成编码并对视频文件进行细化。然而,当它到达终点时,它会在我运行gcs引信命令的终端上发出这个错误:
2022/08/19 21:38:15.477586 SetInodeAttributes: input/output error, SetMtime: UpdateObject: not retrying UpdateObject("c36c2633-d4ee-4d37-825f-88ae54b86100.mp4"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100.mp4, notFound
fuse: 2022/08/19 21:38:15.477660 *fuseops.SetInodeAttributesOp error: input/output error
2022/08/19 21:38:15.637346 SetInodeAttributes: input/output error, SetMtime: UpdateObject: not retrying UpdateObject("c36c2633-d4ee-4d37-825f-88ae54b86100"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100, notFound
fuse: 2022/08/19 21:38:15.637452 *fuseops.SetInodeAttributesOp error: input/output error
2022/08/19 21:38:15.769569 GetInodeAttributes: input/output error, clobbered: StatObject: not retrying StatObject("c36c2633-d4ee-4d37-825f-88ae54b86100.mp4"): gcs.NotFoundError: googleapi: Error 404: No such object: development-videoo-storage1/c36c2633-d4ee-4d37-825f-88ae54b86100.mp4, notFound
fuse: 2022/08/19 21:38:15.769659 *fuseops.GetInodeAttributesOp error: input/output error
最后,我得到了一个文件,其大小与我想要的输出相同,但是有一个无效的视频,其中没有帧。
我使用一个服务帐户来激活我的桶,我可以很好地读取文件,并且我的服务帐户拥有它所需的所有权限,下面是我如何挂载桶的方法:
GOOGLE_APPLICATION_CREDENTIALS=./service-account.json gcsfuse -o nonempty --foreground cloud-storage-name /media
我用的是ubuntu 22.04
发布于 2022-08-19 22:32:45
您需要首先在本地pod文件系统中创建、处理和关闭文件,然后将内容上传到GCS,然后一次完成。
https://stackoverflow.com/questions/73422557
复制相似问题