一:pom添加以来jar
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3</version></dependency>
当然,也能下载jar导入项目;
二:关于文件上传的参数配置
新建 properties文件
三:在业务逻辑层获取阿里云对象
1:先获取属性文件
final static String endpoint = OssUtil.getConfig("contract");final static String accessKeyId = OssUtil.getConfig("accessKeyIdContract");final static String accessKeySecret = OssUtil.getConfig("accessKeySecretContract");final static String bucketName = OssUtil.getConfig("bucketName4C");
2:属性文件的读取方法;
public class OssUtil {protected static Logger logger = LogManager.getLogger(OssUtil.class);public static String getConfig(String key) {String value = "";OssUtil propertiesUtil = new OssUtil();InputStream in = null;Properties props = new Properties();in = propertiesUtil.getClass().getResourceAsStream("/oss.properties");try {props.load(in);} catch (IOException e) {e.printStackTrace();logger.error("getConfig io error:", e);} finally {if (in != null) {try {in.close();} catch (IOException e2) {e2.printStackTrace();logger.error("close io error:", e2);}}}value = props.getProperty(key);logger.info("property info :" + key + ":" + value);System.out.println(value);return value;}}
四:判断你要上传的文件是不是存在
@Overridepublic boolean existFileInOss(String fileName) {// TODO Auto-generated method stub// 创建OSSClient实例OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);// Object是否存在boolean found = ossClient.doesObjectExist(bucketName, fileName);// 关闭client ossClient.shutdown();return found;}
五:上传方法
@Overridepublic void uploadFile(MultipartFile file,String fileId) {//String fileName =file.getOriginalFilename(); // 创建OSSClient实例OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);// 上传文件流try {ossClient.putObject(bucketName, fileId, file.getInputStream());} catch (OSSException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}// 关闭client ossClient.shutdown();}
六:获取文件访问地址
@Overridepublic String getFileUrl(String fileId) {//服务器端生成url签名字串OSSClient Server = new OSSClient(endpoint, accessKeyId, accessKeySecret);Date expiration = null;expiration = new Date(System.currentTimeMillis()+1800000);//logger.debug("请求的fileid: " + fileId);GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, fileId, HttpMethod.GET);//设置过期时间 request.setExpiration(expiration);// 生成URL签名(HTTP GET请求)URL signedUrl = Server.generatePresignedUrl(request);//logger.debug("oss文件url: " + signedUrl);return signedUrl.toString();}
七:删除文件
// 删除文件//ossClient.deleteObject(bucketName, "文件的全路径,如:cia/merged.pdf");
八:控制台接收文件,调用业务层
public @ResponseBody String Upload(HttpServletRequest request, HttpServletResponse response,BsPayBussiness bussinessm, @RequestParam("file") MultipartFile file) {}
欢迎大家一起说出自己的想法。