对象存储oss使用问题之OSS文件下载中CRC64校验如何解决

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。

问题一:url中添加callback为key的参数,则访问失败


问题描述

上传文件到OSS(已关联到CDN域名)后获得链接https://images.gdzskj.tech/GbOcSal4L.jpg,链接可以正常访问。

https://images.gdzskj.tech/GbOcSal4L.jpg?callback=1却无法访问

期望结果

https://images.gdzskj.tech/GbOcSal4L.jpg?callback=1可以正常访问

已尝试的方法

...


参考回答:

CDN限制。如果使用了CDN域名,不支持添加callback参数。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/502803


问题二:oss回调参数不是一个正确的json字符串


问题描述

oss由于上传的文件并非是一个图片,所以系统参数高度为空,oss占位符替换为空,但是这就会导致oss回调给服务器的字符串并非是一个json格式的字符串,这块是不是对我们这种第三方接入方不太友好

(ps : 我知道可以在调用的时候判断当前文件是否为图片,来自定义系统参数的返回,直接觉得oss这样返回一个参数不太好)

期望结果

当占位符替换为空时,给一个null或者默认值吧


参考回答:感谢反馈,已将建议转给OSS产品方评估。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/502733


问题三:...对象存储OSS 设置防盗链以后 使用流方式下载文件报错


问题描述

...对象存储OSS 设置防盗链以后 使用流方式下载文件报错

期望结果

...在设置防盗链后,正常下载,返回流

已尝试的方法

...使用示例代码进行下载,报错key不存在 但是可以使用key上传


参考回答:

测试开启防盗链后,可以流式下载。建议使用帮助中心代码示例测试:https://help.aliyun.com/document_detail/84823.html



关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/502690


问题四:OSS文件下载中CRC64校验的问题


问题描述

通过链接,下载OSS上的APK文件,响应header中返回的【x-oss-hash-crc64ecma】值为【13003555719276992409】,如图:

但是通过【https://github.com/aliyun/aliyun-oss-android-sdk/blob/master/oss-android-sdk/src/androidTest/java/com/alibaba/sdk/android/CRC64Test.java?spm=a2c4g.11186623.0.0.15203af0OMK83s&file=CRC64Test.java】中的【CRC64.java】计算出的apk文件的CRC为 ,这……??

是我使用错误还是?

使用形式:

【CRC64Check】即为SDK中的【CRC64.java】


参考回答:

13003555719276992409 转十六进制b475e907e8811800,转Long类型 -5443188354432559104,和结果部分差异


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/502680


问题五:OSS put请求出现403 SignatureDoesNotMatch


问题描述

使用python和shell访问(使用put)已经sign过的OSS URL(时间1年,并未过期),使用两种访问方式:

python的requests

直接将其转化为curl命令,并运行

import curlify
import requests
data = 'some data str...'
url = 'http://bkmk.oss-ap-northeast-1.aliyuncs.com/71379ec0-7868-11ed-b9fa-55cace6d1414?OSSAccessKeyId=LTAI5tPynodLHeacT1J5SmWh&Expires=1702198548&Signature=MKHdVH4JMFq9QCL4ZU6yftwUaXc%3D'
rep = requests.put(url, data=data)
print(rep.content)
ret1 = curlify.to_curl(rep.request)
print(ret1)
p = os.system(ret1)

获得的日志如下:

(flask) sy@mofs:/mnt/data2/sy/Desktop/sense/bakamaka-old/tests$ python test.py 
b''
curl -X PUT -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'Content-Length: 16' -H 'User-Agent: python-requests/2.25.0' -d 'some data str...' 'http://bkmk.oss-ap-northeast-1.aliyuncs.com/71379ec0-7868-11ed-b9fa-55cace6d1414?OSSAccessKeyId=LTAI5tPynodLHeacT1J5SmWh&Expires=1702198548&Signature=MKHdVH4JMFq9QCL4ZU6yftwUaXc%3D'
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>SignatureDoesNotMatch</Code>
  <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
  <RequestId>63944A2113AFD031301E17C1</RequestId>
  <HostId>bkmk.oss-ap-northeast-1.aliyuncs.com</HostId>
  <OSSAccessKeyId>LTAI5tPynodLHeacT1J5SmWh</OSSAccessKeyId>
  <SignatureProvided>MKHdVH4JMFq9QCL4ZU6yftwUaXc=</SignatureProvided>
  <StringToSign>PUT
application/x-www-form-urlencoded
1702198548
/bkmk/71379ec0-7868-11ed-b9fa-55cace6d1414</StringToSign>
  <StringToSignBytes>50 55 54 0A 0A 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D 77 77 77 2D 66 6F 72 6D 2D 75 72 6C 65 6E 63 6F 64 65 64 0A 31 37 30 32 31 39 38 35 34 38 0A 2F 62 6B 6D 6B 2F 37 31 33 37 39 65 63 30 2D 37 38 36 38 2D 31 31 65 64 2D 62 39 66 61 2D 35 35 63 61 63 65 36 64 31 34 31 34 </StringToSignBytes>
</Error>
None

同时也尝试了postman和$.ajax使用put请求,发现都会返回403 SignatureDoesNotMatch

期望结果

curl, postman, $ajax访问都不会报错403


参考回答:

你好,你的签名URL访问会报403错误SignatureDoesNotMatch,请按照以下步骤排查签名方式并重新生成签名URL:

  1. 请检查Endpoint前面没有Bucket,后面没有多余的“/”,前后没有多余的空格。
  • 比如下面的Endpoint是不合法的。
  • 合法的Endpoint如下。
  1. 请确认AccessKeyID与AccessKeySecret正确,确保AccessKeyID与AccessKeySecret前后都没有空格,特别是使用了复制粘贴的情况。
  2. 请确保BucketName与ObjectKey命名合法有效且符合要求。
  • Bucket命名规范:只能包括小写字母、数字和短横线(-),必须以小写字母或者数字开头,长度必须在3-63字节之间。
  • Object的命名规范:使用UTF-8编码,长度必须在1-1023字节之间,不能以“/”或者“\”字符开头。
  1. 如果是您自己实现的签名,请使用OSS SDK提供的签名方法。OSS的SDK提供了URL/Header签名的实现,详细请参看授权访问
  2. 如果您的环境不适合使用SDK,需要自己实现签名,签名方法请参考发起请求概述,仔细检查每个签名字段。
  3. 如果您使用了代理,请检查代理服务器是否添加额外的Header。

更多信息,请参见OSS权限相关常见错误的排查方法


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/502575


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
6月前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之多个业务流程上传同名资源到同一个OSS(对象存储服务)URL,会产生什么问题
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
存储 弹性计算 对象存储
预留空间是什么?阿里云OSS对象存储预留空间说明
阿里云OSS预留空间是预付费存储产品,提供折扣价以锁定特定容量,适用于抵扣有地域属性的Bucket标准存储费用及ECS快照费。通过购买预留空间,如500GB通用预留+100GB标准-本地冗余存储包,用户可优化成本。
203 4
|
4月前
|
运维 Serverless 数据处理
函数计算产品使用问题之在对象存储服务(OSS)上创建ZIP包解压触发器后,触发器未按预期执行,一般是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何将冷存到OSS(Object Storage Service)的数据恢复
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
文字识别 算法 安全
视觉智能开放平台产品使用合集之如何将返回的图片链接转存到OSS(对象存储服务)
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
6月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
87 1
|
6月前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
227 11
|
6月前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
103 1

热门文章

最新文章

相关产品

  • 对象存储