授权访问
对私有权限的文件(Object),如下表所示的权限,必须通过授权才能访问图片服务。
生成带签名的图片处理的URL代码如下:
- String endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
- String accessKeyId = "<accessKeyId>";
- String accessKeySecret = "<accessKeySecret>";
- String bucketName = "<bucketName>";
- private static String key = "example.jpg";
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 图片处理样式
- String style = "image/resize,m_fixed,w_100,h_100/rotate,90";
- // 过期时间10分钟
- Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
- GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, key, HttpMethod.GET);
- req.setExpiration(expiration);
- req.setProcess(style);
- URL signedUrl = ossClient.generatePresignedUrl(req);
- System.out.println(signedUrl);
提示:
- 授权访问支持 自定义样式、 HTTPS、 级联处理
- 指定过期时间请使用 Date expiration = DateUtil.parseRfc822Date("Wed, 21 Dec 2022 14:20:00 GMT");
SDK访问
对于任意权限的图片文件,都可以直接使用 SDK 访问图片、进行处理。
提示:
- 图片处理的完整代码请参考:GitHub
- SDK处理图片文件支持 自定义样式、 HTTPS、 级联处理
基础操作
图片处理的基础操作包括,
获取图片信息、
格式转换、
缩放、
裁剪、
旋转、
效果、
水印等。
- String endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
- String accessKeyId = "<accessKeyId>";
- String accessKeySecret = "<accessKeySecret>";
- String bucketName = "<bucketName>";
- String key = "example.jpg";
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 缩放
- String style = "image/resize,m_fixed,w_100,h_100";
- GetObjectRequest request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-resize.jpg"));
- // 裁剪
- style = "image/crop,w_100,h_100,x_100,y_100,r_1";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-crop.jpg"));
- // 旋转
- style = "image/rotate,90";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-rotate.jpg"));
- // 锐化
- style = "image/sharpen,100";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-sharpen.jpg"));
- // 水印
- style = "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-watermark.jpg"));
- // 格式转换
- style = "image/format,png";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-format.png"));
- // 图片信息
- style = "image/info";
- request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-info.txt"));
- ossClient.shutdown();
自定义样式
- String endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
- String accessKeyId = "<accessKeyId>";
- String accessKeySecret = "<accessKeySecret>";
- String bucketName = "<bucketName>";
- String key = "example.jpg";
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 自定义样式
- String style = "style/oss-pic-style-w-100";
- GetObjectRequest request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-new.jpg"));
- ossClient.shutdown();
级联处理
- String endpoint = "<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>";
- String accessKeyId = "<accessKeyId>";
- String accessKeySecret = "<accessKeySecret>";
- String bucketName = "<bucketName>";
- private static String key = "example.jpg";
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 级联处理
- String style = "image/resize,m_fixed,w_100,h_100/rotate,90";
- GetObjectRequest request = new GetObjectRequest(bucketName, key);
- request.setProcess(style);
- ossClient.getObject(request, new File("example-new.jpg"));
- ossClient.shutdown();
图片处理工具