我正在尝试检索上传的新文件的下载URL,以便可以将其写入数据库。我同时跟踪了this answer和official docs,但是我的函数出现错误。
当前这是我想要的云功能:
exports.writeFileToDatabase = functions.storage
.object()
.onFinalize(object => {
const bucket = defaultStorage.bucket();
const file = bucket.file(object.name as string);
const options = {
action: 'read',
expires: '03-17-2025'
};
return file.getSignedUrl(options)
.then(results => {
const url = results[0];
console.log(`The signed url is ${url}.`);
return true;
})
});
但是将options
传递到getSignedUrl
时出现此错误:
Argument of type '{ action: string; expires: string; }' is not assignable to parameter of type 'GetSignedUrlConfig'
[我也收到results
的错误提示:
Parameter 'results' implicitly has an 'any' type
我作为参考的示例看不到我在做什么。
这是因为您正在使用TypeScript,而您所引用的示例正在使用JavaScript。您应该按如下所示导入类型GetSignedUrlConfig
:
import { GetSignedUrlConfig } from '@google-cloud/storage';
和做
const options: GetSignedUrlConfig = {
action: 'read',
expires: '03-17-2025'
};