通过 Google 云功能上传文件时未保存元数据
Metadata not saving when uploading a file through Google Cloud functions
我正在使用 firebase 云函数调整图像大小,并想设置自定义元数据。
复制了代码
但是,当我重新读取文件时,它根本没有设置元数据。
export const generateThumbs = functions.storage.object().onFinalize(async object => {
const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name as string; // File path in the bucket.
const contentType = object.contentType; // File content type.
const metadata: any = object.metadata || {};
// First time around this works and logs metadata.
// I set "isThumb" as false on client. It is set in
// the first run!
// In the second run, it comes back as undefined
console.log(object.metadata);
if (metadata && metadata.isThumb) {
console.log("Already a thumbnail");
return;
}
// .... later
metadata.isThumb = true;
// Override the original file with the smaller one
// I am passing it the same metadata, and yet
// when the function is triggered again, the
// metadata is undefined! This part is straight from
// google's documentation.
await bucket.upload(tempFilePath, {
destination: filePath,
metadata: metadata
});
我希望设置元数据,但它返回时未定义。
我明白了。必须是:
等待bucket.upload(tempFilePath, {
目的地:文件路径,
元数据:{ 元数据:元数据}
});
Google 在 https://firebase.google.com/docs/storage/extend-with-functions 的文档没有提到这一点。
我正在使用 firebase 云函数调整图像大小,并想设置自定义元数据。
复制了代码但是,当我重新读取文件时,它根本没有设置元数据。
export const generateThumbs = functions.storage.object().onFinalize(async object => {
const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name as string; // File path in the bucket.
const contentType = object.contentType; // File content type.
const metadata: any = object.metadata || {};
// First time around this works and logs metadata.
// I set "isThumb" as false on client. It is set in
// the first run!
// In the second run, it comes back as undefined
console.log(object.metadata);
if (metadata && metadata.isThumb) {
console.log("Already a thumbnail");
return;
}
// .... later
metadata.isThumb = true;
// Override the original file with the smaller one
// I am passing it the same metadata, and yet
// when the function is triggered again, the
// metadata is undefined! This part is straight from
// google's documentation.
await bucket.upload(tempFilePath, {
destination: filePath,
metadata: metadata
});
我希望设置元数据,但它返回时未定义。
我明白了。必须是:
等待bucket.upload(tempFilePath, { 目的地:文件路径, 元数据:{ 元数据:元数据} });
Google 在 https://firebase.google.com/docs/storage/extend-with-functions 的文档没有提到这一点。