对象存储OSS图片处理服务使用中的问题解决

笔记 104 Views 0 Comments

在使用WordPress的阿里云插件的时候遇到了特色图片不显示、已上传的图片库的图片不能显示,其它不适用OSS图片处理服务的地方都显示正常。一直以为是OSS的问题,今天有空找了一下具体原因和解决方法,如下:

要使用图片处理服务,样式,必须要用图片处理服务域名,刚开始使用oss容易忽略这一点,比如我的bucket是ali-hangzhou, 
经常会犯错如下两种方式 
1 ali-hangzhou.oss-cn-hangzhou.aliyuncs.com/1.jpg@100w 
2 hz.aikuniu.com/1.jpg@100w (其中hz.aikuniu.com 是cdn域名,源站是ali-hangzhou.oss-cn-hangzhou.aliyuncs.com) 
这样去使用图片处理服务,oss-cn-hangzhou.aliyuncs.com不是图片处理服务域名,所以这样访问的话,oss会把1.jpg@100w当做一个object,会提示404不存在(当然如果你的oss里面刚好有一个1.jpg@100w这样的object就能正常显示)

 
ali-hangzhou这个bucket的图片处理服务域名是 ali-hangzhou.img-cn-hangzhou.aliyuncs.com,注意和 ali-hangzhou.oss-cn-hangzhou.aliyuncs.com 是不一样的。要用图片处理服务样式,切记用 ali-hangzhou.img-cn-hangzhou.aliyuncs.com 去访问,ali-hangzhou.img-cn-hangzhou.aliyuncs.com/1.jpg@100w 
 
 
常见图片处理服务问题解决办法 
1 比如海外地域bucket使用图片处理服务,没法绑定自定义域名使用cdn,或者国内地域bucket使用图片处理服务只能绑定一个cdn域名。 
解决办法,在cdn控制台创建cdn域名时,源站写oss图片处理服务域名 ali-hangzhou.img-cn-hangzhou.aliyuncs.com (切记不要写错),然后创建好后在cdn域名的基本信息—基础配置界面左下角回源host改成源站oss域名ali-hangzhou.img-cn-hangzhou.aliyuncs.com ,这样域名就不用在图片处理服务那绑定了,可以直接使用了。cdn域名也可以创建多个 
 
 
2 使用图片处理服务,开启图片保护后,只能用 ali-hangzhou.img-cn-hangzhou.aliyuncs.com/1.jpg@!stylename 这种格式访问(stylename就是样式管理自己创建的样式的规则名字,自定义样式分隔符默认是@!,开启原图保护时可以自己选择其他的分隔符,根据个人习惯),其他的比如 ali-hangzhou.img-cn-hangzhou.aliyuncs.com/1.jpg@100w 或者 ali-hangzhou.img-cn-hangzhou.aliyuncs.com/1.jpg 都不允许访问了 
 
 
3 使用图片处理样式打开png图片,背景颜色变成黑色,比如 hpy.img-cn-hangzhou.aliyuncs.com/png.png 打开背景颜色是透明的,但是访问 hpy.img-cn-hangzhou.aliyuncs.com/png.png@700w 是背景颜色成黑的了,原因是因为使用图片处理服务,如果没有指定输出图片格式,默认是输出jpg图片,而png图像有四通道,而jpg只有三个通道,这样就导致了png转jpg时,会丢失一个通道. 所以背景就变成黑色了,访问的时候指定输出格式为png就可以了,hpy.img-cn-hangzhou.aliyuncs.com/png.png@700w.png这样打开就没有问题。如果就想输出jpg图片,可以hpy.img-cn-hangzhou.aliyuncs.com/png.png@700w_1wh.jpg这样访问,把背景颜色改成白色,可以参考https://help.aliyun.com/document_detail/32244.html?spm=5176.doc32210.6.493.frNsiW了解一下 


看了以上第一条,之后,在OSS重新配置了插件用到的四个样式,然后回到插件设置里面把,oss图片服务的url修改为img-cn-hangzhou之后终于,所有图片都显示正常了

如未说明则本站原创,转载请注明出处:ITYet » 对象存储OSS图片处理服务使用中的问题解决

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址