一、有关图片上传代码
代码为批量图片上传,单张图片上传,剔除有关循环即可
public class OSSUtil {
public static String[] pictureToOSS(Object[] data,String[] pictureType,String[] picturePath){
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "11111111111111111111111";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = "11111111111111111";
String accessKeySecret = "11111111111111111";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
ObjectMetadata objectMetadata = new ObjectMetadata();
// 填写Byte数组。
Date expiration = new Date(new Date().getTime() + 3600 * 1000*240);
String[] ossUrl=new String[picturePath.length];
int pictureIndex=0;
String pictureName;
// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称
for(int i=0;i< data.length;i++){
pictureName=picturePath[i];
//配置图片格式
objectMetadata.setContentType("image/"+pictureType[i]);
//图片上传
ossClient.putObject("wordimport-pictures-test",pictureName , new ByteArrayInputStream((byte[]) data[i]),objectMetadata);
//获取url
String path =ossClient.getObject("wordimport-pictures-test",pictureName).getResponse().getUri();
ossUrl[i]=path;
}
// 关闭OSSClient。
ossClient.shutdown();
return ossUrl;
}
}
二、关于url无法显示图片的处理
- 例如这种访问url是这种情况
- 处理方式——修改读写权限即可,设置为公共读