我正在尝试执行以下操作:
我已经为存储设置了这些cors设置:
[
{
"origin": ["*"],
"method": ["GET", "HEAD", "OPTIONS"],
"responseHeader": ["*"],
"maxAgeSeconds": 3600
}
]
但是当我尝试使用“保存到驱动器”按钮保存文件后,我收到 cors 错误:
访问 XMLHttpRequest 'https://firebasestorage.googleapis.com/v0/b/{domain}/o/projects%2F-NXLt_SKMfg2aMASx9hu%2Fexport%2Ftmp_export.pdf?alt=media&token=e9336aa3-c827-423b-bd09-162c8d332f80' 来自来源 'http://localhost:8082' 已被 CORS 策略阻止: 请求头字段cache-control不被允许 预检响应中的访问控制允许标头。
有没有办法实现这个目标?
我发现您可以使用 Firebase http 函数来实现此目的。从存储下载并将其添加到端点的响应中
exports.exportFile = onRequest({ cors: ["*"] }, async (req, res) => {
// some code to get file
const buffer = ... //get buffer of your file
res.setHeader("Content-Type", "application/octet-stream");
res.setHeader("Content-Disposition", "attachment; filename={your_filename}");
res.send(buffer);
});
然后只需将网址添加到“保存到云端硬盘”按钮即可。
<div
class="g-savetodrive"
data-src="http://{domain}/.../exportFile"
data-filename="{filename}"
data-sitename=""
></div>