首页 > 解决方案 > 谷歌云存储节点客户端 ResumableUploadError

问题描述

我们有一个在 GCP 和 Kubernetes 服务中运行的应用程序。后端位于运行节点/高山基础映像的容器内。我们尝试使用 Google Cloud Storage ( @google-cloud/storage": "~2.0.3") 的 nodejs 客户端库将文件更新到我们的存储桶,就像在 github repo 示例中一样:

storage.bucket(bucketName)
                .upload(path.join(sourcePath, filename),
                    {
                        'gzip': true,
                        'metadata': {
                            'cacheControl': 'public, max-age=31536000',
                        },
                    }, (err) => {
                        if (err) {
                            return reject(err);
                        }

                        return resolve(true);
                    });
        });

它适用于小于 5Mb 的文件,但是当我得到更大的文件时,我得到一个错误:

{"name":"ResumableUploadError"}

几次谷歌搜索后,我看到客户端自动切换到可恢复上传。不幸的是,我找不到任何关于如何使用节点客户端管理这种特殊情况的示例。我们希望最多允许 50Mb,所以现在有点担心。

标签: node.jsgoogle-cloud-platformgoogle-cloud-storage

解决方案


好的,你知道问题是因为我的容器运行节点/高山映像。alpine 发行版被剥离到最低限度,因此没有~/.config文件夹被google-cloud/storage节点库使用的Configstore库使用。我不得不进入 repo 检查代码并在file.ts中看到注释一旦我在容器中添加了文件夹(通过在 Dockerfile 中添加 RUN mkdir ~/.config),一切都开始按预期工作。


推荐阅读