阿里云OSS可对桶里的图片生成对应的软连接即短的url
跨境电商产品图片url 过长,优先跨境平台限制了长度不让上传,
可用同步阿里云OSS 软链接解决这个问题
阿里云OSS可对桶里的图片生成对应的软连接即短的url
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.CreateSymlinkRequest;
import com.aliyun.oss.model.ObjectMetadata;
public static void createSoftLinkUrlByOss(){
// 配置参数
String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
String accessKeyId = "xxx";
String accessKeySecret = "aaa";
String bucketName = "name1";
// 要创建的软链接名称
String symlinkName = "sku_001.jpg";
// 软链接指向的目标文件
String targetObject = "upload/sku/sku001.jpg";
// 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 创建创建软链接请求
CreateSymlinkRequest request = new CreateSymlinkRequest(bucketName, symlinkName, targetObject);
// 设置元数据(如Content-Type)
// ObjectMetadata metadata = new ObjectMetadata();
// metadata.setContentType("image/jpeg"); // 设置MIME类型
// metadata.addUserMetadata("custom-path", "oss://" + bucketName + "/" + targetObject); // 自定义元数据(存储完整路径)
//
// request.setMetadata(metadata); // 关联元数据
// 可选:设置元数据
// request.setMetadata(metadata);
// 创建软链接
ossClient.createSymlink(request);
System.out.println("创建软链接成功");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭OSSClient
if (ossClient != null) {
ossClient.shutdown();
}
}
}
pom.xml
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.17.4</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>