阿里云对象存储 OSS 预签名私有图片的缩略图生成


如果是对象存储设置了公共读权限,图片可以直接通过URL访问,不需要签名,也没有有效期,参考官方文档, 在URL末尾添加缩放处理代码: ?x-oss-process=image/resize,p_50 即可得到该图片的缩略图。

如果是私用图,需要生成一个有时效限制的预签名的URL,举个例子:

签名URL: https://xxxx.oss-xxxx.aliyuncs.com/e8ab3176c540%2F1749800266-8.jpg?security-token=CAISvgN1q6Ft5B2yfSjIr5v%2BPe%2F3jpdp%2BrGgREHkqFUlScR5ivTxsDz2IHhMfXlsBOwdv%2F0%2BnW5V6fcSlrN2TJVEQUGBcNN06Z1btFrkOtWd6pztteZa1cVpwcA4lUSpsvXJasDVEfkGE5XEMiIB%2F00e6L%2F%2BcirYfz7BGJaViJlhQ80KVw2jF1RvD8tXIQ0Q8K1%2FMmDKZ86wLjnggGfbECgQvRFn209y7amjz%2BqW6BfVkD%2BfzfQO9av8Pr%2BubcRn…已省略后续字符

这种情况下,不能像公共读属性的URL链接那样这接添加 x-oss-process 处理参数。需要在生成预签名URL时,传入缩放处理参数,以Python SDK为例,实现代码如下:

# 初始化OSS客户端
auth = oss2.Auth('your_access_key_id', 'your_access_key_secret')
bucket = oss2.Bucket(auth, 'your_endpoint', 'your_bucket_name')
# 原图路径
original_key = 'images/example.jpg'
# 生成缩略图规则(缩放至宽200px,保持比例)
process_rule = 'image/resize,w_200'
# 生成带图片处理的预签名URL
# 有效期3600秒(1小时)
expires_time = 3600
signed_url = bucket.sign_url(
    'GET',
    original_key,
    expires_time,
    params={'x-oss-process': process_rule}		# 缩放处理参数
)

生成的URL如下,其实也就是把缩放处理代码做了下URL字符转义,再作为一个额外的参数放在预签名的URL里面了

https://clzw76.oss-cn-wuhan-lr.aliyuncs.com/e8ab3176c540%2F1749800266-8.jpg?x-oss-process=image%2Fresize%2Cw_200&security-token=CAISvgN1q6Ft5B2yfSjIr5v%2BPe%2F3jpdp%2BrGgRE…已省略后续字符

参考链接:

阿里云文档 – 图片缩放
阿里云文档–使用预签名URL下载文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值