写点什么

开源一夏 | 腾讯云对象存储 cos 获取图片像素信息

  • 2022 年 8 月 12 日
    北京
  • 本文字数:719 字

    阅读完需:约 2 分钟

开源一夏 | 腾讯云对象存储cos获取图片像素信息

上传时增加参数记录图片像素信息

项目中是通过流类型上传文件到腾讯云 cos 的,上传图片信息默认是没有像素信息,想获取图片像素信息的话首先想到的是通过增加上传自定义参数信息定义图片像素参数上传,文档地址: https://cloud.tencent.com/document/product/436/65935#.E4.B8.8A.E4.BC.A0.E6.B5.81.E7.B1.BB.E5.9E.8B2

根据文档可以通过 usermetadata 参数增加自定义参数信息,

代码补充对应参数之后上传图片文件报错:com.qcloud.cos.exception.CosClientException: Data read has a different length than the expected: dataLength=0; expectedLength=635065; includeSkipped=false; in.getClass()=class com.qcloud.cos.internal.ReleasableInputStream; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0,最后测试得出的结果就是设置了 content-length 就不能设置 usermetadata,不设置 content-length 的话虽然可以设置 usermetadata,但是文件的大小却不是正常大小,而是 0;

询问腾讯云 cos 技术支持得知

如果使用了 objectmetadata 去指定 content-length,那就必须指定,不然会使用默认值 0;如果不想指定,就不要传 objectmetadata
复制代码

那么问题来了,不指定 objectmetadata 就无法指定 usermetadata 信息,指定 objectmetadata 就必须指定 content-length,同时指定 content-length 和 usermetadata 又会报错无法上传。此路行不通暂时

展示时获取图片像素信息

询问腾讯云 cos 技术知识得知有一篇 api 文档可以获取到图片的像素信息 https://cloud.tencent.com/document/product/460/6927 ,这样的话就在获取腾讯云文件列表信息的判断是否是图片资源进行获取图片像素信息的操作

此方案行得通,且页面加载也基本不受影响,故采用次方案

发布于: 刚刚阅读数: 2
用户头像

让技术不再枯燥,让每一位技术人爱上技术 2022.07.22 加入

还未添加个人简介

评论

发布
暂无评论
开源一夏 | 腾讯云对象存储cos获取图片像素信息_腾讯云_六月的雨在infoQ_InfoQ写作社区