任何熟悉此 gcloud 异常的人:
ApiError:在 Object.parseHttpRespBody (/site/node_modules/gcloud/lib/common/util.js:206) 的新 util.ApiError (/site/node_modules/gcloud/lib/common/util.js:128:10) 处找不到:30) 在 Object.handleResp (/site/node_modules/gcloud/lib/common/util.js:146:18) 在 /site/node_modules/gcloud/lib/common/util.js:447:12 在 Request.onResponse [as _callback] (/site/node_modules/gcloud/node_modules/retry-request/index.js:120:7) 在 Request.self.callback (/site/node_modules/request/request.js:187:22) 在请求.emit (events.js:98:17) 在请求。(/site/node_modules/request/request.js:1044:10) 在 Request.emit (events.js:95:17) 在 IncomingMessage 处。(/site/node_modules/request/request.js:965:12) 在 IncomingMessage.emit (events.js:117:20) 在 _stream_read.js:944:16 在 process._tickDomainCallback (node.js:492:13)
它仅出现在生产中(当然)并且目前一致。它曾经定期出现,假设它是 gCloud 的一个小故障,因为它无法在本地重现。它与使用最简单的 gCloud lib 方法的代码部分相关,bucket.upload除了文件之外没有任何参数......这是执行此操作的当前函数:
function uploadToGoogleCloud(filePath, makePublic) {
var gstorage = gcloud.storage({
projectId: EXAMPLE_projectId,
credentials: EXAMPLE_credentials,
});
var spBucket = Promise.promisifyAll(gstorage.bucket(EXAMPLE_bucket));
return spBucket.uploadAsync(filePath).then(function(file) {
if (makePublic) {
var fileAsync = Promise.promisifyAll(file);
return fileAsync.makePublicAsync().then(function() {
return file; …Run Code Online (Sandbox Code Playgroud) 为什么我不能像使用 Google Cloud Functions 那样使用环境变量?据我了解,Firebase 功能位于 Google Cloud 之上。通过 Firebase 功能,您可以使用环境配置,但并不相同。
我已经完成了这两种实现,但我发现使用谷歌云函数处理环境变量更容易。
也许我只是不知道该怎么做,而且找不到任何文档,所以如果有人能指出我正确的方向,我将不胜感激。如果使用 firebase 函数方式有任何优点,请告诉我。
在尝试获取 IP 时,所有标准标头值都包含不正确的值。
req.ip: ::ffff:172.17.0.5
req.headers['x-forwarded-for']: 169.254.160.2
req.socket.remoteAddress: ::ffff:172.17.0.5
Run Code Online (Sandbox Code Playgroud)
所有这些都会导致错误的IP。
我正在编写代码,使用gcloud-node将使用node-fetch获取的文件上传到Google云端存储中的存储桶.
到目前为止一切正常,但我无法找到如何Content-Type在GCloud上设置文件,否则文件下载为application/octet-stream.
这是我到目前为止的代码:
function saveImage(response, destFile) {
return new Promise((resolve, reject) => {
if (response.status !== 200) {
reject(new Error('Bad Response'));
}
// How do I set this on the file uploaded to the bucket?
const contentType = response.headers.get('Content-Type');
try {
const file = bucket.file(destFile);
const writeStream = file.createWriteStream();
writeStream.on('error', err => {
reject(err);
});
writeStream.on('finish', () => {
resolve(getPublicUrl(destFile));
});
response.body.pipe(writeStream);
} catch (e) {
reject(e);
}
});
}
Run Code Online (Sandbox Code Playgroud) 我使用gcloud node v0.24与 Google Cloud Storage 交互。我遇到了上传后立即列表未返回所有已上传文件的问题。
所以问题是
总是Bucket#getFiles在之后列出文件Bucket#upload吗?
或者
上传回调和文件可用(例如可以列出、下载)之间是否有延迟?
我正在使用gcloud nodejs apiGoogle Cloud Storage。我可以分别保存/删除/存在文件,但是我找不到使用删除文件夹甚至列出文件夹中文件的方法gcloud nodejs api。
我见过有人说,GCS中的文件夹层次结构不是真正的树结构,而只是名称。因此,我尝试使用通配符来匹配文件名字符串,但失败了。
我想知道是否有任何办法可以做到。如果没有,我应该使用什么工具?
使用gcloud Node库,如何获取云存储桶中文件的URL?
考虑以下文件对象的即时消息:
let bucket = gcs.bucket(`aBucket`)
let cloudFile = bucket.file(`aFile`)
Run Code Online (Sandbox Code Playgroud)
我想获取下载的URL cloudFile.
node.js google-cloud-storage google-cloud-platform gcloud-node