Backblaze-b2 cors问题nextjs

问题描述 投票:0回答:1

大家好,我正在尝试为 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);
}

enter image description here

enter image description here

next.js backblaze
1个回答
0
投票

解决此问题的方法是使用 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 中授权才能运行此命令

© www.soinside.com 2019 - 2024. All rights reserved.