有没有办法将 google 云存储桶文件用作本地文件?
Is there a way to use a google cloud storage bucket file as a local file?
我尝试使用格式 gs://bucket-name/file-name 但它不起作用(给出错误:“ENOENT:没有这样的文件或目录,打开 'gs://data-excel/Book1.xlsx'”)。
我想使用 read-excel-file 库将 excel 文件转换为 MySQL 并插入数据。当我使用 /tmp/ 作为存储时它起作用了,但是当涉及到更大的文件时它不起作用,因为它使用的内存比我可用的内存多。 PD:我使用的是 App Engine 标准环境。
我一直在尝试阅读云存储文档,但找不到任何解决方案。如果能找到这个问题的答案,我将不胜感激。
在 VM 或您的工作站上,您可以使用 GCSFUSE(仅在 linux/mac 上)将 GCS 存储桶安装到目录中并作为本地目录与 GCS 交互(注意,您需要记住,系统调用包含在 API 调用中,因此性能和成本与本地存储不同。
如果您使用无服务器产品、App Engine、Cloud Functions 或 Cloud 运行(目前),这些产品是无状态的,您无法在其上挂载分区。唯一的实现方式是下载/tmp directory(内存文件系统)中的文件,然后对本地下载的文件进行处理。
小心,因为它在内存文件系统中,如果您不手动清理 /tmp
目录,您可以 运行 内存不足的问题。此外,当实例重启或扩容时,您将丢失下载的文件;因为它只在内存中而不是持久的。
我尝试使用格式 gs://bucket-name/file-name 但它不起作用(给出错误:“ENOENT:没有这样的文件或目录,打开 'gs://data-excel/Book1.xlsx'”)。
我想使用 read-excel-file 库将 excel 文件转换为 MySQL 并插入数据。当我使用 /tmp/ 作为存储时它起作用了,但是当涉及到更大的文件时它不起作用,因为它使用的内存比我可用的内存多。 PD:我使用的是 App Engine 标准环境。
我一直在尝试阅读云存储文档,但找不到任何解决方案。如果能找到这个问题的答案,我将不胜感激。
在 VM 或您的工作站上,您可以使用 GCSFUSE(仅在 linux/mac 上)将 GCS 存储桶安装到目录中并作为本地目录与 GCS 交互(注意,您需要记住,系统调用包含在 API 调用中,因此性能和成本与本地存储不同。
如果您使用无服务器产品、App Engine、Cloud Functions 或 Cloud 运行(目前),这些产品是无状态的,您无法在其上挂载分区。唯一的实现方式是下载/tmp directory(内存文件系统)中的文件,然后对本地下载的文件进行处理。
小心,因为它在内存文件系统中,如果您不手动清理 /tmp
目录,您可以 运行 内存不足的问题。此外,当实例重启或扩容时,您将丢失下载的文件;因为它只在内存中而不是持久的。