OSS图片处理,是OSS对外提供的海量、安全、低成本、高可靠的图片处理服务。用户将原始图片上传保存到OSS,通过简单的 RESTful 接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。图片处理提供图片处理接口,图片上传请使用上传接口。基于OSS图片处理,用户可以搭建自己的图片处理服务。
图片处理基础功能
OSS图片处理提供以下功能:
Bucket权限 | Object权限 |
公共读私有写(public-read)或 公共读写(public-read-write) | 默认(default) |
任意权限 | 公共读私有写(public-read)或 公共读写(public-read-write) |
http://bucket.<endpoint>/object?x-oss-process=x-oss-process=style/name
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/oss-pic-style-w-100
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100/rotate,90
https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
Bucket权限 | Object权限 |
私有读写(private) | 默认权限(default) |
任意权限 | 私有读写(private) |
<?php
require_once __DIR__ . '/vendor/autoload.php';
use OSS\OssClient;
$endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
$accessKeyId = "<access_key_id>";
$accessKeySecret = "<access_key_secret>";
$bucket = "<bucket_name>";
$object = "example.jpg";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
/**
* 生成一个带签名的可用于浏览器直接打开的url, URL的有效期是3600秒
*/
$timeout = 3600;
$options = array(
OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET", $options);
Common::println("rtmp url: \n" . $signedUrl);
提示:
- 授权访问支持 自定义样式、 HTTPS、 级联处理
- signedUrl 过期时间单位是[backcolor=transparent]秒
提示:
- 图片处理的完整代码请参考:GitHub
- SDK处理图片文件支持 自定义样式、 HTTPS、 级联处理
<?php
require_once __DIR__ . '/vendor/autoload.php';
use OSS\OssClient;
$endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
$accessKeyId = "<access_key_id>";
$accessKeySecret = "<access_key_secret>";
$bucket = "<bucket_name>";
$object = "example.jpg";
$download_file = "download.jpg";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 先把本地的example.jpg上传到指定$bucket, 命名为$object
$ossClient->uploadFile($bucket, $object, "example.jpg");
// 图片缩放
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100" );
$ossClient->getObject($bucket, $object, $options);
// 图片裁剪
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/crop,w_100,h_100,x_100,y_100,r_1" );
$ossClient->getObject($bucket, $object, $options);
// 图片旋转
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/rotate,90" );
$ossClient->getObject($bucket, $object, $options);
// 图片锐化
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/sharpen,100" );
$ossClient->getObject($bucket, $object, $options);
// 图片水印
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ" );
$ossClient->getObject($bucket, $object, $options);
// 图片格式转换
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/format,png" );
$ossClient->getObject($bucket, $object, $options);
// 获取图片信息
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => "image/info" );
$ossClient->getObject($bucket, $object, $options);
//最后删除上传的$object
$ossClient->deleteObject($bucket, $object);
<?php
require_once __DIR__ . '/vendor/autoload.php';
use OSS\OssClient;
$endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
$accessKeyId = "<access_key_id>";
$accessKeySecret = "<access_key_secret>";
$bucket = "<bucket_name>";
$object = "example.jpg";
$download_file = "download.jpg";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 先把本地的example.jpg上传到指定$bucket, 命名为$object
$ossClient->uploadFile($bucket, $object, "example.jpg");
$style = "style/oss-pic-style-w-300";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => $style);
$ossClient->getObject($bucket, $object, $options);
//最后删除上传的$object
$ossClient->deleteObject($bucket, $object);
<?php
require_once __DIR__ . '/vendor/autoload.php';
use OSS\OssClient;
$endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
$accessKeyId = "<access_key_id>";
$accessKeySecret = "<access_key_secret>";
$bucket = "<bucket_name>";
$object = "example.jpg";
$download_file = "download.jpg";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// 先把本地的example.jpg上传到指定$bucket, 命名为$object
$ossClient->uploadFile($bucket, $object, "example.jpg");
$style = "image/resize,m_fixed,w_100,h_100/rotate,90";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => $style);
$ossClient->getObject($bucket, $object, $options);
//最后删除上传的$object
$ossClient->deleteObject($bucket, $object);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。