如何在上传到同一路径时强制firebase存储返回新签名的URL?

时间:2018-01-19 05:04:03

标签: javascript firebase google-cloud-storage firebase-storage react-native-firebase

我正在使用profiles/${userId}/image.jpg等路径将用户个人资料的图片上传到Firebase。

每次上传后,我会触发一个云函数,该函数可以获得带有GCS的签名网址,如下例所示:



const SIGNED_BUCKET_URL_CONFIG = {
    action: 'read',
    expires: '03-01-2501'
};
const bucket = gcs.bucket(BUCKET_NAME);
const profileImageRef = bucket.file(`profiles/${userId}/image.jpg`);
const url = profileImageRef.getSignedUrl(SIGNED_BUCKET_URL_CONFIG),




现在我的问题是,每次上传/覆盖图片后,返回的签名网址始终相同,并且移动应用程序不知道必须刷新此图片的缓存。

是否可以生成带有版本参数的签名网址,例如' .... V = 123&#39?; ?

2 个答案:

答案 0 :(得分:0)

您可以使用generation生成带有版本的签名网址。

答案 1 :(得分:0)

实现此目标的一种简单方法是为您的SIGNED_BUCKET_URL_CONFIG动态提供以下内容:

const exp = Date.now() + 30 * 365 * 24 * 60 * 60 * 1000; // 30 years from now

const SIGNED_BUCKET_URL_CONFIG = {
    action: 'read',
    expires: exp
};

但是,如果在完全相同的毫秒内进行多次上传,则上述技术可能会失败。因此,只有在您的项目可以接受的情况下,才选择此方法。