开发者社区 问答 正文

接入图片服务之如何实现使用SDK处理图片?

本节主要介绍如何使用 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)

展开
收起
青衫无名 2017-10-23 11:04:54 1733 分享 版权
阿里云 AI 助理回答

使用阿里云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中获取并处理图片,包括生成缩略图和添加水印等功能。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答