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