大家好,我正在尝试为 nextjs 应用程序设置 Backblaze,但我收到了 cors 错误,在第一个实例中,我认为这是存储桶,我设置了自定义 cors 规则,但这并不是因为我在 b2.authorize() 上收到此错误。 我从本地主机使用它:3000
“corsRules”:[ { “允许的标题”:[ “授权”, “内容类型”, “x-bz-内容-sha1”, “x-bz-文件名” ], “允许的操作”:[ “b2_上传_文件” ], “允许来源”:[ “http://localhost:3000” ], "corsRuleName": "uploadFileFromLocalHostAndWebSite", “暴露标题”:[ “x-bz-内容-sha1” ], “最大年龄秒”:3600 } ],
有人遇到过这个问题吗?我必须使用万能钥匙吗?
async function uploadToB2(file: Blob) {
const b2 = new B2({
applicationKeyId: process.env.NEXT_PUBLIC_APPLICATION_KEY_ID as string,
applicationKey: process.env.NEXT_PUBLIC_APPLICATION_KEY as string,
});
const auth = await b2.authorize();
console.log(auth);
}
解决此问题的方法是使用 cli 设置 cors 规则:
b2 update-bucket --cors-rules '[
{
"corsRuleName": "downloadFromAnyOriginWithUpload",
"allowedOrigins": [
"*"
],
"allowedHeaders": [
"authorization",
"content-type",
"x-bz-file-name",
"x-bz-content-sha1"
],
"allowedOperations": [
"b2_download_file_by_id",
"b2_download_file_by_name",
"b2_upload_file",
"b2_upload_part"
],
"maxAgeSeconds": 3600
}
]' (your bucket name)
您需要在 cli 中授权才能运行此命令