1.关于上传文件类型限制
PolicyConditions.COND_CONTENT_TYPE参数应该怎么设置呢?
<Code>AccessDenied</Code>
<Message>Invalid according to Policy: Policy Condition failed: ["eq", "$Content-Type", "image/png"]
2.回调验证失败文件依然会上传到OSS
当回调服务器无法访问,或404等错误时,上传的文件依然会被保存
<Code>CallbackFailed</Code>
<Message>Error status : 404.</Message>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
关于上传文件类型限制的问题,当你遇到错误信息Invalid according to Policy: Policy Condition failed: ["eq", "$Content-Type", "image/png"]
时,这表明您在设置Policy的条件时,对于内容类型(Content-Type)的约束与实际上传文件的Content-Type不匹配。要解决这个问题,请确保您的Policy条件中指定的内容类型与上传文件的实际类型相一致。
例如,如果您期望只允许上传PNG图片,确保在生成签名策略时正确设置"content-type"
条件,如下所示:
# 确保数组中的内容类型与您期望接收的一致
[\"in\", \"$content-type\", [\"image/png\"]]
或者,如果需要支持多种类型:
[\"in\", \"$content-type\", [\"image/jpeg\", \"image/png\", \"image/jpg\"]]
对于回调验证失败但文件依然上传到OSS的情况,这是OSS服务的设计行为。即使回调(Callback)配置的服务器端点无法访问或返回了错误(如404),只要OSS接收到的上传请求本身是合法的,并且满足其他Policy条件,它就会继续完成文件的存储操作。这样做是为了保证数据上传的可靠性,避免因外部系统问题导致的数据丢失。
重要提示:这意味着即使回调失败,您也需要在业务逻辑层面处理这种情况,比如通过日志监控来发现回调未成功的情况,并采取相应的补救措施,比如手动验证文件、触发重试机制或者进行后续的数据处理流程。为了确保数据的一致性和完整性,建议您定期检查回调服务器的可用性及日志记录,确保能够及时响应和处理这些回调失败事件。
综上所述,针对文件类型限制,请仔细核对并正确设置Policy中的Content-Type条件;而对于回调失败问题,需在应用层增加监控和补偿逻辑以应对这类异常情况。您也可以通过ECS一键诊断全面排查并修复ECS问题。