美文网首页
java sdk 上传文件到阿里云 oos

java sdk 上传文件到阿里云 oos

作者: 意浅离殇 | 来源:发表于2017-10-15 21:31 被阅读0次

首先当然是开通 oos 服务啦之后创建一个backet 取名haha174
顺带创建几个分类文件夹如下图


这里写图片描述

接下来依次去到上传所需要的数据创建一个工具类来保存方便使用
pom 依赖

    <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>2.7.0</version>
    </dependency>

public class FilePath {
    public static final String RESOURCE_PATH="D:/";
    public static final String URL_PATH="www.haha174.top:8086/dbz/";
    //  oos   相关   数据
    public static final String endpoint="http://oss-cn-beijing.aliyuncs.com";
    public static final  String accessKeyId = "LTAIWOJiEXDii";
    public static final  String accessKeySecret = "0GQxrDVLr1ohyCMOuZpUvg";
    public static final String bucketName="haha174";
    public static final String accessUrl="http://haha174.oss-cn-beijing.aliyuncs.com";
    //  oos   相关   结束
    // 下载文件零时存放  和  pdf  临时存放路径
    public static final String PDF_PATH="D://";
}

当然了上述的asskey 和accessKeySecret 是假的 可以去https://ak-console.aliyun.com/?spm=5176.8465980.home.dindex1.7fcf7b345iZLRa#/accesskey 查看自己的id 和accessKeySecret
接下来写一个工具类做上传用

 public static String uploadFile(MultipartFile multipartFile, String remotePath) throws Exception {
            // 流转换 将MultipartFile转换为oss所需的InputStream  
           // CommonsMultipartFile cf = (CommonsMultipartFile) multipartFile;  
           // DiskFileItem fi = (DiskFileItem) cf.getFileItem();  
            InputStream fileContent = multipartFile.getInputStream();  
            //获取文件名,对文件名做随机处理  
            String fileName = multipartFile.getOriginalFilename();  
            System.out.println(fileName);
            //这里可以修改文件的命名
            fileName = "dbz_" + new Date().getTime() + fileName.substring(fileName.lastIndexOf("."));
            // 加载配置文件,初始化OSSClient  
          //  OSSConfigure ossConfigure = new OSSConfigure("/system.properties");
            OSSClient ossClient = new OSSClient(FilePath.endpoint, FilePath.accessKeyId,
                    FilePath.accessKeySecret);
            // 定义二级目录  
            String remoteFilePath = remotePath.substring(0, remotePath.length()).replaceAll("\\\\", "/") + "/";  
            // 创建上传Object的Metadata  
            ObjectMetadata objectMetadata = new ObjectMetadata();  
            objectMetadata.setContentLength(fileContent.available());  
            objectMetadata.setContentEncoding("utf-8");  
            objectMetadata.setCacheControl("no-cache");  
            objectMetadata.setHeader("Pragma", "no-cache");  
            objectMetadata.setContentType(contentType(fileName.substring(fileName.lastIndexOf("."))));  
            objectMetadata.setContentDisposition("inline;filename=" + fileName);  
            // 上传文件
            System.out.print(remoteFilePath);
            ossClient.putObject(FilePath.bucketName, remoteFilePath+fileName , fileContent, objectMetadata);
            // 关闭OSSClient  
            ossClient.shutdown();  
            // 关闭io流  
            fileContent.close();  
            return FilePath.accessUrl + "/" + remoteFilePath + fileName;
        }

之后通过controller 调用


    @RequestMapping("/oos.do")
    public String UploadVideo(MultipartFile file,HttpSession sesssion) throws ParseException {

        boolean flag = true;
        RandomUtil util = new RandomUtil();
        if (file != null) {
                try {String type = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
                    //String filePath = Resource + util.getTimeString() + util.getRandom(4) + "." + type;
                    
                    // 转存文件
                    //file.transferTo(new File(FilePath.RESOURCE_PATH+filePath));
                    //下面的other  是你bucket中德分类文件夹名称
                    String filePath=   new OSSManageUtil().uploadFile(file,"other");
                    return  filePath;
                    //得到新的文件名
                   // list.add(new Msg(size, FilePath.URL_PATH+filePath));
                } catch (Exception e) {
                    e.printStackTrace();
                    return  "上传失败";
                }
            
        } else {
        }
        return  "上传成功";
    }

创建一个jsp 页面来做文件上传


 <form  action="/upload/oos.do" method="post" id="ImageForm" enctype="multipart/form-data" >
<input id='upinput' type='file' name='file'>
<input type='submit' value="上传">
</form>

启动项目上传图片

这里写图片描述
选择一张图片上传成功的话会返回 访问地址如下图
这里写图片描述
简单的 java sdk 就上传成功了
推荐一篇文章 http://mp.weixin.qq.com/s/Xoevf4oFpKg1f5vHT98gOw
个人博客 地址 http://www.haha174.top/article/details/255984
项目源码 https://github.com/haha174/day

相关文章

网友评论

      本文标题:java sdk 上传文件到阿里云 oos

      本文链接:https://www.haomeiwen.com/subject/lyqhuxtx.html