3

我正在将用户配置文件的图像上传到 Firebase,路径为 profiles/${userId}/image.jpg.

每次上传后,我都会触发一个云函数,该函数会使用 GCS 获取签名的 url,如下例所示:

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),

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

是否可以生成带有版本参数的签名 url,例如 '....?v=123' ?

4

1 回答 1

1

实现此目的的一种简单方法是为您的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
};

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

于 2019-02-25T14:31:47.693 回答