OSS對(duì)象存儲(chǔ)
??阿里云對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù)。OSS可用于圖片、音視頻、日志等海量文件的存儲(chǔ)。各種終端設(shè)備、Web網(wǎng)站程序、移動(dòng)應(yīng)用可以直接向OSS寫(xiě)入或讀取數(shù)據(jù)。
1.開(kāi)通OSS服務(wù)
2.進(jìn)入控制臺(tái)
3.創(chuàng)建 Bucket
4.新建文件夾(存放文件)
5.創(chuàng)建完成后,在右上角頭像欄找到AccessKey管理
6.點(diǎn)擊 創(chuàng)建AccessKey,身份驗(yàn)證后,即可獲取到KeyId和KeySercret
實(shí)現(xiàn) 1.引入oos依賴com.aliyun.oss aliyun-sdk-oss2.8.3
2.yml文件以及oss配置信息application.yml
server:
port: 8081
mybatis:
type-aliases-package: com.wjj.springbootoos.pojo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:/mapper/*.xml
spring: #springboot的配置
datasource: #定義數(shù)據(jù)源
#127.0.0.1為本機(jī)測(cè)試的ip,3306是mysql的端口號(hào)。serverTimezone是定義時(shí)區(qū),照抄就好,mysql高版本需要定義這些東西
#useSSL也是某些高版本mysql需要問(wèn)有沒(méi)有用SSL連接
url: jdbc:mysql://localhost:3306/oos?serverTimezone=UTC
username: root #數(shù)據(jù)庫(kù)用戶名,root為管理員
password: root #該數(shù)據(jù)庫(kù)用戶的密碼mysql.session
application-aliyun-oos.properties
aliyun.endPoint=oss-cn-hangzhou.aliyuncs.com
aliyun.urlPrefix=junkai1.oss-cn-hangzhou.aliyuncs.com
aliyun.accessKeyId=LTAI5tPP4FLVrM92oSZxtWV6
aliyun.accessKeuSecrect=cxLRwCyr0z2QYKYvaDDPMLMDEYMLLP
aliyun.bucketName=junkai1
aliyun.fileHost=ketai
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=200MB
這里需要填入直接的,可通過(guò)上面的AccessKey管理進(jìn)入找到相對(duì)應(yīng)的填入即可
configAliyunOssConfig
封裝對(duì)應(yīng)屬性?
service接口實(shí)現(xiàn)類 上傳@Autowired
private OSS client;
@Autowired
private fileMapper mapper;
@Autowired
private AliyunOssConfig aliyunOssConfig;
//共有屬性代碼 允許上傳圖片的格式
private static final String[] IMAGE_TYPE =new String[]{
".bmp",".jpg",".jpeg",".gif",".png"
};
@Override
public String upload(MultipartFile multipartFile) {
//獲取基本信息
String endpoint=aliyunOssConfig.getEndPoint();
String bucketName=aliyunOssConfig.getBucketName();
String accesKeyId=aliyunOssConfig.getAccessKeyId();
String accessKeuSecret=aliyunOssConfig.getAccessKeuSecrect();
String fileHost=aliyunOssConfig.getFileHost();
//校驗(yàn)格式
boolean isLegal=false;
for (String type:IMAGE_TYPE){
if (StringUtils.endsWithIgnoreCase(multipartFile.getOriginalFilename(),type)){
isLegal=true;
break;
}
}
if (isLegal==false){
return StatusCode.ERROR.getMsg();
}
//1.獲取文件名稱
String orName=multipartFile.getOriginalFilename();
//2.獲取文件的類型
String fileType=orName.substring(orName.lastIndexOf("."));
//3.新名稱
String newFileName= UUID.randomUUID().toString()+fileType;
System.out.println(newFileName);
//4.構(gòu)建文件上傳路徑
String filePath=new SimpleDateFormat("yyyy/MM/dd").format(new Date());
//5.文件上傳的路徑
String uploadUrl=fileHost+"/"+filePath+"/"+newFileName;
System.out.println(uploadUrl);
System.out.println(filePath);
//6.開(kāi)始上傳
InputStream inputStream=null;
try {
inputStream=multipartFile.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
ObjectMetadata meta=new ObjectMetadata();
meta.setContentType("image/jpg");
//上傳阿里云
client.putObject(bucketName,uploadUrl,inputStream,meta);
mapper.add(newFileName,uploadUrl);
return "http://"+bucketName+"."+endpoint+"/"+uploadUrl;
}
刪除controller層下載?下載
下載只需將圖片路徑封裝打a標(biāo)簽即可
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧