对象存储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月前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
40 1
|
1月前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
69 11
|
1月前
|
存储 弹性计算 文件存储
对象存储OSS产品常见问题之OSS Bucket 创建好后更改存储类型如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
|
1月前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
|
1月前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
134 0
|
1月前
|
开发工具 对象存储 Android开发
对象存储oss使用问题之C++使用OSS SDK时遍历OSS上的文件时崩溃如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
|
1月前
|
存储 对象存储 容器
阿里云OSS对象存储基础入门
阿里云OSS对象存储基础入门
103 0
|
1月前
|
Java API PHP
使用oss服务上传/下载对象
使用oss服务上传/下载对象
147 2

热门文章

最新文章

相关产品

  • 对象存储