OSS文件上传下载


 // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
    private static String endpoint = "http://oss-cn-beijing.aliyuncs.com/";
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    private static String accessKeyId = "LTAI5tMTvwx7TtXauXJAypEx";
    private static String accessKeySecret = "T6yyLAjFOkRCtMdFAvrEjCcMJOy3Kl";
    // 填写Bucket名称,例如examplebucket。
    private static String bucketName = "upload-img-fly";
/**
 * @Author: fly
 * @Description: 文件上传到OSS云储存
 * @Date: 2021/12/22 19:22
 * @param: [fileName:文件名称, inputStream:文件输入流]
 * @paramType: [java.lang.String, java.io.InputStream]
 * @Return:  fileName:返回上传到OSS云储存上的 文件名/名称
 *           fileFix:文件后缀(.jpg)
 **/
public static Map<String, String> upLoadFile(String fileName, InputStream inputStream){
    Map<String, String> responseInfo = new HashMap<>();
    //生成OSS客户端并建立连接
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    //文件后缀
    String fileFix = fileName.substring(fileName.lastIndexOf("."));
    //随机获取一个UUID作为文件名
    String uuid = UUID.randomUUID().toString().replaceAll("-", "");
    //上传到OSS后的文件名称
    fileName = "file/"+uuid+fileFix;
    //上传到OSS
    ossClient.putObject(bucketName,fileName,inputStream);
    //返回上传到OSS后的文件名称
    responseInfo.put("fileName",fileName);
    //返回文件后缀(.jpg)
    responseInfo.put("fileFix",fileFix);
    //关闭连接
    ossClient.shutdown();
    return responseInfo;
}


/**
 * @Author: fly
 * @Description: 下载文件
 * @Date: 2021/12/23 11:11
 * @param: [fileName :文件名称, downloadPath:下载到某个路径下]
 * @paramType: [java.lang.String, java.lang.String]
 **/
public static void downLoadFile(String fileName,String downloadPath){
    Map<String, String> responseInfo = new HashMap<>();
    //生成OSS客户端并建立连接
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    //获取OSS操作对象
    OSSObject object = ossClient.getObject(bucketName, fileName);
    //获取文件流
    InputStream inputStream = object.getObjectContent();
    //当前系统时间的毫秒值
    long time = new Date().getTime();
    //文件后缀
    String fileFix = fileName.substring(fileName.lastIndexOf("."));
    //下载文件的具体路径 + 名称
    downloadPath = downloadPath + "/" + time + fileFix;
    FileOutputStream outputStream = null;
    try {
        //文件输出流 (文件输出(下载)的路径 + 名称)
        outputStream = new FileOutputStream(downloadPath);
        //将获取到的文件流下载(copy)到某个路径下
        IOUtils.copy(inputStream,outputStream);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        //判断文件输出流不为空
        if (outputStream != null){
            try {
                //关闭输出流
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //判断文件输入流不为空
        if (inputStream != null){
            try {
                //关闭输入流
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //关闭OSS连接
        ossClient.shutdown();
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM