oss上传
Posted whb11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oss上传相关的知识,希望对你有一定的参考价值。
首先阿里云申请,这个自行上阿里云按照指示申请,这里只写java代码引用
配置文件yml
oss:
endPoint:
accessKeyId:
accessKeySecret:
bucketName:
这四个自行配置
上传类
public class OSSClientWrapper {
static Logger log = Logger.getLogger(OSSClientWrapper.class);
@Value("${oss.endPoint}")
private String endPoint; // endpoint是访问OSS的域名。如果您已经在OSS的控制台上 创建了Bucket,请在控制台上查看域名。
@Value("${oss.accessKeyId}")
private String accessKeyId; // accessKeyId和accessKeySecret是OSS的访问密钥,您可以在控制台上创建和查看,
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName; // Bucket用来管理所存储Object的存储空间,详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。
public String oss(MultipartFile file) {
// 日志配置,OSS Java SDK使用log4j记录错误信息。示例程序会在工程目录下生成“oss-demo.log”日志文件,默认日志级别是INFO。
// 日志的配置文件是“conf/log4j.properties”,如果您不需要日志,可以没有日志配置文件和下面的日志配置。
PropertyConfigurator.configure("log4j.properties");
log.info("Started");
// 生成OSSClient,您可以指定一些参数,详见“SDK手册 > Java-SDK > 初始化”,
// 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
String url = null ;
try {
// 判断Bucket是否存在。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
// 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
if (ossClient.doesBucketExist(bucketName)) {
System.out.println("您已经创建Bucket:" + bucketName + "。");
} else {
System.out.println("您的Bucket不存在,创建Bucket:" + bucketName + "。");
// 创建Bucket。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
// 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
ossClient.createBucket(bucketName);
}
// 查看Bucket信息。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
// 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
BucketInfo info = ossClient.getBucketInfo(bucketName);
System.out.println("Bucket " + bucketName + "的信息如下:");
System.out.println(" 数据中心:" + info.getBucket().getLocation());
System.out.println(" 创建时间:" + info.getBucket().getCreationDate());
System.out.println(" 用户标志:" + info.getBucket().getOwner());
// 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/upload_object.html?spm=5176.docoss/user_guide/upload_object
InputStream is = new ByteArrayInputStream(file.getBytes());
ossClient.putObject(bucketName, file.getOriginalFilename(), is);
url = "http://"+bucketName+"."+endPoint+"/"+file.getOriginalFilename();
// URL url = ossClient.generatePresignedUrl(bucketName, file.getOriginalFilename(),new Date());
log.info(url.toString());;
System.out.println("Object:" + file.getOriginalFilename() + "存入OSS成功。");
} catch (OSSException oe) {
oe.printStackTrace();
} catch (ClientException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
ossClient.shutdown();
}
log.info("Completed");
return url;
}
public void deleteOss(String filePath) {
OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
ossClient.deleteObject(bucketName, filePath);
}
}
以上是关于oss上传的主要内容,如果未能解决你的问题,请参考以下文章