java基於OSS文件上傳功能


1.登錄阿里雲,點擊開通對象儲存功能

 

 2.點擊創建bucket

 

3.創建頁面如下:根據自己要求勾選

 

4.點擊此處進入:

 

 5.可以在網頁上實現文件上傳下載

 

 6.下面實現基於java的oss上傳下載

 

  6.1  點擊下面按鈕,設置ak

 

6.2 使用子用戶

 

 

6.3點擊創建用戶,設置以下三處

 

創建后系統會給你提供如下:記得復制粘貼下來,保存下來,以后要用到;你退出后,系統不會幫你記錄下來這個

 

 

 

 6.4點擊添加權限

 

我選擇了這個,按需要選擇:

 

 

 6.5 JAVA 的oss文件上傳工具類

  /**
     * oss完成文件上傳
     * @param endpoint  地域節點
     * @param accessKeyId  ak id
     * @param accessKeySecret ak密碼
     * @param inputStream  要上傳的文件的輸入流
     * @param bucketName  Bucket 名字
     * @param bucketDomain Bucket 域名
     * @param originalName  要上傳的文件的原始文件名
     * @return
     */
    public static ResultEntity<String> uploadFileToOss(
            String endpoint,
            String accessKeyId,
            String accessKeySecret,
            InputStream inputStream,
            String bucketName,
            String bucketDomain,
            String originalName) {

        // 創建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 生成上傳文件的目錄
        String folderName = new SimpleDateFormat("yyyyMMdd").format(new Date());

        // 生成上傳文件在OSS服務器上保存時的文件名
        // 原始文件名:beautfulgirl.jpg
        // 生成文件名:wer234234efwer235346457dfswet346235.jpg
        // 使用UUID生成文件主體名稱
        String fileMainName = UUID.randomUUID().toString().replace("-", "");

        // 從原始文件名中獲取文件擴展名
        String extensionName = originalName.substring(originalName.lastIndexOf("."));

        // 使用目錄、文件主體名稱、文件擴展名稱拼接得到對象名稱
        String objectName = folderName + "/" + fileMainName + extensionName;

        try {
            // 調用OSS客戶端對象的方法上傳文件並獲取響應結果數據
            PutObjectResult putObjectResult = ossClient.putObject(bucketName, objectName, inputStream);

            // 從響應結果中獲取具體響應消息
            ResponseMessage responseMessage = putObjectResult.getResponse();

            // 根據響應狀態碼判斷請求是否成功
            if(responseMessage == null) {

                // 拼接訪問剛剛上傳的文件的路徑
                String ossFileAccessPath = bucketDomain + "/" + objectName;

                // 當前方法返回成功
                return ResultEntity.successWithData(ossFileAccessPath);
            } else {
                // 獲取響應狀態碼
                int statusCode = responseMessage.getStatusCode();

                // 如果請求沒有成功,獲取錯誤消息
                String errorMessage = responseMessage.getErrorResponseAsString();

                // 當前方法返回失敗
                return ResultEntity.failed("當前響應狀態碼="+statusCode+" 錯誤消息="+errorMessage);
            }
        } catch (Exception e) {
            e.printStackTrace();

            // 當前方法返回失敗
            return ResultEntity.failed(e.getMessage());
        } finally {

            if(ossClient != null) {

                // 關閉O SSClient。
                ossClient.shutdown();
            }
        }

6.6. 測試類如下:

 

 6.7 效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM