本节主要介绍如何使用 OSS 的 Python SDK 去获取 private bucket 的图片处理服务,因为图片处理服务都是 GET 操作,所以使用 OSS Python SDK 主要以 Get Object 为主。
以 Python SDK 为例,在 Python SDK里有一个 get_object 操作,传入的参数一般是 bucket,object。
OSS
获取bucket: image-demo,object:example.jpg
bucket = 'image-demo'
object = 'example.jpg'
self.oss.get_object(bucket,object)
图片服务
简单缩略
获取bucket: image-demo,object: example.jpg ,
转换字符是: 100w_100h.jpg
bucket = 'image-demo'
object = 'example.jpg'
query = '100w_100h.jpg'
object = object + '@' + query
self.oss.get_object(bucket, object)
图片水印
获取bucket: image-demo,object: example.jpg ,
转换字符是:watermark=1&object=cGFuZGEucG5n&t=90&p=5
bucket = 'image-demo'
object = 'example.jpg'
query = 'watermark=1&object=cGFuZGEucG5n&t=90&p=5'
object = object + '@' + query
self.oss.get_object(bucket, object)
文字水印
获取bucket: image-demo, object:example.jpg
转换字符是:watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ
bucket = 'image-demo'
object = 'example.jpg'
query = ' watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ '
object = object + '@' + query
self.oss.get_object(bucket, object)
样式
获取bucket: image-demo, object:example.jpg
样式名:pipe1
bucket = 'image-demo'
object = 'example.jpg'
style = ' pipe1 '
object = object + '@!' + style
self.oss.get_object(bucket, object)
管道
获取bucket: image-demo, object:example.jpg
管道操作: 200w.jpg|watermark=1&object=cGFuZGEucG5n&t=90&p=5
bucket = 'image-demo'
object = 'example.jpg'
query = ' 200w.jpg|watermark=1&object=cGFuZGEucG5n&t=90&p=5'
object = object + '@' + query
self.oss.get_object(bucket, object)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
使用阿里云OSS(对象存储服务)的Python SDK来获取private bucket中的图片并进行处理,主要涉及get_object
方法的应用。以下是针对您提及需求的具体操作指南:
要获取一个位于image-demo
bucket中的example.jpg
图片,并对其进行简单缩略处理(例如调整为100x100像素),可以通过以下Python代码实现:
bucket_name = 'image-demo'
object_key = 'example.jpg'
query = '100w_100h.jpg' # 缩略参数,表示宽度100px,高度100px
# 构建带有处理指令的对象键
processed_object_key = object_key + '@' + query
# 初始化OSS客户端
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, '<yourEndpoint>', bucket_name)
# 获取并处理图片
self.oss.get_object(bucket_name, processed_object_key)
若需在image-demo
bucket的example.jpg
图片上添加水印,并假设水印参数为watermark=1
,示例代码如下:
bucket_name = 'image-demo'
object_key = 'example.jpg'
query = 'watermark=1' # 水印参数
# 构建带有处理指令的对象键
processed_object_key = object_key + '?' + query
# 初始化OSS客户端
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, '<yourEndpoint>', bucket_name)
# 获取并处理图片
self.oss.get_object(bucket_name, processed_object_key)
注意: - <yourAccessKeyId>
、<yourAccessKeySecret>
和<yourEndpoint>
需要替换为您的实际阿里云OSS访问密钥ID、密钥和Endpoint。 - 在构建处理指令时,不同的处理类型(如缩略、样式、管道等)有不同的格式要求,请根据实际需求调整查询字符串query
的内容。 - 上述代码片段中直接使用了self.oss.get_object
,在实际应用中应确保self.oss
已被正确初始化为OSS Bucket实例。
通过上述步骤,您可以利用OSS Python SDK高效地从private bucket中获取并处理图片,包括生成缩略图和添加水印等功能。