ACE JAVA用SDK存储服务上传图片后的URL地址是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用ACE JAVA SDK通过阿里云对象存储(OSS)服务上传图片后,获取到的图片URL地址可以通过以下方式生成和理解:
上传图片后,图片的访问地址遵循以下格式:
https://<bucketname>.<endpoint>/<objectname>
<bucketname>:您创建的存储空间(Bucket)名称。<endpoint>:存储空间所在地域的访问域名。例如,杭州区域的域名为oss-cn-hangzhou.aliyuncs.com。<objectname>:上传图片的文件名或路径。注意:如果图片是私有文件,则需要生成带签名的URL才能访问。
对于允许匿名访问的公共读或公共读写图片,可以直接通过上述基本URL访问图片。例如:
https://examplebucket.oss-cn-hangzhou.aliyuncs.com/example.jpg
如果需要对图片进行处理(如缩放、裁剪等),可以在URL中添加图片处理参数或样式参数: - 添加图片处理参数:
https://examplebucket.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_200/rotate,90
表示将图片缩放至宽度为200像素,并旋转90度。
https://examplebucket.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/small
其中small是您在OSS控制台中预先定义的样式名称。
对于私有图片文件,无法通过直接添加参数的方式访问图片。此时需要通过SDK生成带签名的URL。以下是使用Java SDK生成签名URL的示例代码:
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import java.net.URL;
import java.util.Date;
public class GenerateSignedUrl {
public static void main(String[] args) throws Throwable {
// 填写您的Endpoint,例如华东1(杭州)
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 使用环境变量中的访问凭证
EnvironmentVariableCredentialsProvider credentialsProvider =
CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填写Bucket名称
String bucketName = "examplebucket";
// 填写Object完整路径
String objectName = "example.jpg";
// 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
// 设置签名URL的有效期,例如1小时
Date expiration = new Date(new Date().getTime() + 3600 * 1000);
// 创建GeneratePresignedUrlRequest对象
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName);
request.setExpiration(expiration);
// 如果需要添加图片处理参数
request.setProcess("image/resize,w_200/rotate,90");
// 生成签名URL
URL signedUrl = ossClient.generatePresignedUrl(request);
System.out.println("签名URL: " + signedUrl.toString());
} finally {
// 关闭OSSClient
ossClient.shutdown();
}
}
}
上传图片后,图片的URL地址由Bucket名称、Endpoint和Object名称组成。对于公共图片,可以直接通过URL访问;对于私有图片,需使用SDK生成带签名的URL。