如何从Firestore哈希处理的存储URL中提取英文文件名?
提取Firestore存储URL中的原始文件名
可以通过字符串处理的方式,针对URL的固定结构提取原始文件名,具体实现如下:
JavaScript 实现代码
function extractOriginalFilename(url) { // 提取 test/ 之后到 .png 之前的核心部分 const coreSegment = url.split('test/')[1].replace('.png', ''); // 定位最后一个连字符的位置(哈希值的起始标记) const lastDashPos = coreSegment.lastIndexOf('-'); // 截取最后一个连字符之前的内容,即为原始文件名 return coreSegment.slice(0, lastDashPos); } // 测试示例 const testUrls = [ "https://storage.googleapis.com/test/agency-register-crrRhaUSWopn4QRc2M54MX.png", "https://storage.googleapis.com/test/agency-register-documents-crrRhaUSWopn4QRc2M54MX.png", "https://storage.googleapis.com/test/agencyRegister-crrRhaUSWopn4QRc2M54MX.png", "https://storage.googleapis.com/test/agency-crrRhaUSWopn4QRc2M54MX.png" ]; testUrls.forEach(url => { console.log(extractOriginalFilename(url)); });
代码逻辑说明
- 分割URL:通过
split('test/')拿到test/之后的部分,再用replace('.png', '')去掉后缀,得到包含原始文件名和哈希值的核心片段。 - 定位哈希起始点:利用
lastIndexOf('-')找到最后一个连字符的位置——因为哈希值总是在原始文件名的最后一个连字符之后。 - 截取原始文件名:从核心片段的开头截取到最后一个连字符之前的内容,就是你需要的原始文件名。
运行结果
执行上述代码后,控制台会依次输出:
agency-registeragency-register-documentsagencyRegisteragency
内容的提问来源于stack exchange,提问作者Mert Yılmaz
相关产品推荐
相关产品推荐

