zfile-dev / zfile

在线云盘、网盘、OneDrive、云存储、私有云、对象存储、h5ai、上传、下载
https://www.zfile.vip
MIT License
9.71k stars 1.84k forks source link

上传到Backblaze的文件会报403无权限 #633

Closed ghost closed 9 months ago

ghost commented 9 months ago

环境信息

复现步骤

存储源配置为Backblaze,通用s3协议,是否自动配置 CORS 跨域设置已为开启状态,b2处也设置了与任何源共享,但是上传文件的时候就会提示403无权

预期结果

正常上传

实际结果

403无权

额外信息

zhaojun1998 commented 9 months ago

我刚验证了没问题,新创建的 api 密钥,新创建的存储桶,什么都没改。可以参考下:https://docs.zfile.vip/example/b2

你也可以新创建一个 api 密钥,新创建一个桶来验证,避免之前在 b2 上的某些配置影响,再逐一排查到底是 api 密钥的问题还是桶的问题。

ghost commented 9 months ago

has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 还是会被拦截,如果桶设置为私有,就会401,公有就是403,上面的没有Access-Control-Allow-Origin

zhaojun1998 commented 9 months ago

确认是新建的 bucket 么,没做任何配置,都采用默认,然后 zfile 中启用自动 cors 的状态下上传文件。

ghost commented 9 months ago

您的cros规则能正确启用嘛,我现在都是默认的配置,自动启用cros就会报 “设置跨域失败,请检查 API 密钥、地域、存储器名称是否正确,或 API 是否有权限设置跨域”

zhaojun1998 commented 9 months ago

可以的,请确认是新创建的包含读写权限的密钥,和新创建的未做过任何配置的存储桶,如果这样能成功,再继续一步一步排查。如果有一些用的旧的,可能性因素就会很多,无法得知到底哪里的问题。

我这 zfile 中自动 cors 能正常打开,你最开始提 issue 时不也描述能正常打开么。

还有如果 zfile 中自动配置了 cors,就不要再去 b2 修改,不然会冲突。

ghost commented 9 months ago

因为我之前那个桶是公开的,配置cros就可以正确,删除新建桶后在设置公开,居然要收费了。。。。刚才通过查阅资料,在S3的sdk中,acl默认是private私有的,我现在也只能设置私有桶,确认创建的是包含读写权限的密钥,和新创建的未做过任何配置的存储桶。 在刚才,我创建了新的b2账号,所有的操作都是默认,在zfile中启用自动配置cors,还是会提示报错“设置跨域失败,请检查 API 密钥、地域、存储器名称是否正确,或 API 是否有权限设置跨域”

ghost commented 9 months ago

点错了。。。

zhaojun1998 commented 9 months ago
  1. 不配置自动 cors 能保存么
  2. 请截图 b2 中桶的信息和 zfile 中填写的信息,不用包含密钥,包含名称,endpoint 等即可。如我的 image
ghost commented 9 months ago

Snipaste_2024-02-20_10-24-38 这是我的相关信息

zhaojun1998 commented 9 months ago

感觉是你密钥的问题呢,正常填写 AccessKey、SecretKey、EndPoint、地域后,存储空间名称会自动出现下拉选择,参见我那张图存储空间名称右侧的下拉框的箭头。

你可以使用其他支持 s3 的功能填写相同的信息试试是否正常。

zhaojun1998 commented 9 months ago

AccessKey 一般是002开头 SecretKey 一般是 K002 开头 注意别复制到 zfile 中左右包含空格

ghost commented 9 months ago

AccessKey与SecretKey这两个开头是和地域有关的,我重新申请了新的密钥,如图片所示 Snipaste_2024-02-20_10-24-38 现在存储桶已出现下拉选项,但配置cors还是会提示错误

zhaojun1998 commented 9 months ago

好像 b2 在灰度测试一些功能,你截图的这个在我这里不存在。

你在截图下新创建这个 bucket,在 b2 上目前的 cors 规则页面

ghost commented 9 months ago

Snipaste_2024-02-20_10-24-38 这是新的cors配置界面,再提这个issue之前有尝试过 “与每一个来源共享这个桶里的所有东西” ,但最终也会报错的

zhaojun1998 commented 9 months ago

已确认是密钥权限的问题,必须使用 ALL 权限的必要才能自动配置 CORS