アリクラウドOSSは、写真やエコーをアップロード

アリ雲の公式文書は以下の非常に詳細な、アドレスをやってきた、私たちは強く公式ドキュメントを見てお勧めします

https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.788.32037815QD8fgC

ステップ1

まず、それぞれの構成情報application.yml設定ファイル中の充填(設定情報は公式サイトaliyunコンソールに表示することができます)

それぞれの従属ファイルのポンポンで導入

<依存性> 
    <のgroupId> com.aliyun.oss </のgroupId> 
    <たartifactId> aliyun-SDK-OSS </たartifactId> 
    <バージョン> 3.8.0 </バージョン> 
</依存>

 

 

 

 ステップ2

作成ツール、ツールを使用して設定情報(このステップは、直接でのサービス層で、スキップすることができます)application.yml文書、構成情報は、静的変数として定義され、それはから直接することができ、「クラス名。」取得する方法

1  パッケージcom.atzjhydx.oss.utils;
 2  
。3  インポートorg.springframework.beans.factory.InitializingBean;
 4  インポートorg.springframework.beans.factory.annotation.Value;
 5  インポートorg.springframework.stereotype.Component;
 6  
。7  @コンポーネント
 8  // InitializingBean役割は、Beanの初期化後にカスタマイズされた操作を実行することです。
9  パブリック クラス ConstantPropertiesUtils 実装InitializingBean {
 10  
。11      @value( "Aliyun.aFile.accessKeyId $ {}" 12であり、     プライベート文字列accessKeyId;
 13のIS 
14      @value( "$ {Aliyun.aFile.accessKeySecret}" 15      プライベート文字列accessKeySecret。
16  
17      @value( "$ {Aliyun.aFile.endpoint}" 18      プライベート文字列エンドポイント;
19  
20      @value( "$ {Aliyun.aFile.bucketName}" 21      プライベート文字列bucketName。
22  
23      公共の 静的な文字列END_POINT。
24      公共の 静的な文字列BUCKET_NAME。
25      公共の 静的な文字列ACCESS_KEY_ID。
26      公共の 静的な文字列ACCESS_KEY_SECRET。
27  
28      @Override
 29      公共 ボイド afterPropertiesSet()がスロー例外{
 30          END_POINT = 終点を、
31          BUCKET_NAME = bucketName。
32          ACCESS_KEY_ID = accessKeyId。
33          ACCESS_KEY_SECRET = accessKeySecret。
34      }
 35 }

 

STEP3

特定のアップロード機能の達成におけるサービス層

1  パッケージcom.atzjhydx.oss.service.impl。
2  
3  インポートcom.aliyun.oss.HttpMethod。
4  インポートcom.aliyun.oss.OSS。
5  インポートcom.aliyun.oss.OSSClientBuilder。
6  インポートcom.aliyun.oss.model.GeneratePresignedUrlRequest。
7  インポートcom.atzjhydx.oss.service.OssService。
8  インポートcom.atzjhydx.oss.utils.ConstantPropertiesUtils。
9  インポートorg.joda.time.DateTime。
10  インポートorg.springframework.stereotype.Service。
11  インポートorg.springframework.web.multipart.MultipartFile。
12は、 
13である インポート、java.io.InputStreamを
 14  インポートのjava.net.URL;
 15  インポートjava.util.Date;
 16  インポートjava.util.UUID;
 17  
18である @Service
 19の。 パブリック クラス OssServiceImpl 実装OssServiceは{
 20は     @Override
 21である     公共の文字列uploadFileAvatar(MultipartFileファイル){
 22は、 
23である         // (取得されたカスタムツールを介して)取得した接続構成プロファイル
24          列エンドポイント= ; ConstantPropertiesUtils.END_POINT
 25          列= accessKeyIdConstantPropertiesUtils.ACCESS_KEY_ID;
 26である          文字列accessKeySecret = ; ConstantPropertiesUtils.ACCESS_KEY_SECRET
 27          列bucketName = ConstantPropertiesUtils.BUCKET_NAME;
 28  
29          OSS ossClient = NULL ;
 30  
31である         トライ{
 32              // のOSインスタンスを作成し
33である              ossClient = 新しい新。OSSClientBuilder()ビルド(エンドポイント、accessKeyId 、accessKeySecret);
 34である 
35              // アップロードファイル入力ストリーム取得
36を              InputStream InputStreamは= file.getInputStream();
 37  
38である             //(既存のファイルのuuid回避カバレッジの問題を使用して)ファイル名を取得する
39              文字列OriginalFilename = )file.getOriginalFilename(;
 40              文字のuuid = UUID.randomUUID()のtoString()でReplaceAll( " - "、 ""。);
 41は、ある              文字列fileNameにUUID OriginalFilename + = ;
 42です             // ファイルが日付で分類(ジョダ-時間を使用して日付ツールを使用しているJava独自のツールでもよい)
43である              文字列データパス= 新しい新しいのDateTime()のtoString(「YYYY / MMを。 / DD " );
 44である             // ファイル名とフォルダパスのマージを構成するファイルの日付
45              fileNameに=データパス+" /「+ ファイル名を、
 46は 
47              // OSSアップロードするメソッド呼び出し
 48              @バケット第1のパラメータ名
 49              // A / B / C / 123.jpg OSS第2のパラメータは、ファイルのパスとファイル名をアップロード
 50              // 第3のパラメータアップロードファイル入力ストリーム
51である             ossClient.putObject(bucketName、ファイル名、 inputStream);
 52は、 
53である             // URLが返された10年の一連の期間
54ある              日の有効期限= 新しい新しい A日付(新しい新しい A日付()getTime()+ 10 * 365 * 24 * 60 * 60 * 1000 );
 55              GeneratePresignedUrlRequest REQ = 新しい新しいGeneratePresignedUrlRequest (bucketName、ファイル名、HttpMethod.GET);
 56である             req.setExpiration(満了)、
 57は 
58              // エコーURL 
59             URL URL = ossClient.generatePresignedUrl(REQ)。
60              リターンurl.toString()。
61  
62          } キャッチ(例外e){
 63              e.printStackTrace();
64              リターン はnull ;
65          } 最後に{
 66              であれば(ossClient!= NULL ){
 67                  ossClient.shutdown()。
68              }
 69          }
 70      }
 71 }

コントローラー層、フロントページへのURL情報バック

1  パッケージcom.atzjhydx.oss.controller。
2  
3  インポートcom.atzjhydx.commonutils.R。
4  インポートcom.atzjhydx.oss.service.OssService。
5  インポートorg.springframework.beans.factory.annotation.Autowired。
6  インポートorg.springframework.web.bind.annotation.CrossOrigin。
7  インポートorg.springframework.web.bind.annotation.PostMapping。
8  インポートorg.springframework.web.bind.annotation.RequestMapping。
9  インポートorg.springframework.web.bind.annotation.RestController。
10  インポートorg.springframework.web.multipart.MultipartFile;
 11  
12である @RestController
 13は( "/ eduoss / fileoss" @RequestMapping 14  @CrossOrigin
 15  パブリック クラスをOssController {
 16  
17。     @Autowired
 18で     プライベートOssService ossService;
 19  
20      // アバター方法をアップロード
21は、     @PostMapping
 22は     パブリック(MultipartFileファイル){R&LT uploadOssFile
 23れる 
24          // アップロードを取得し
 25          // 戻るOSSパスをアップロードし
26である          文字列URL =ossService.uploadFileAvatar(ファイル);
27  
28          リターン R.ok()データ( "URL"。、URL);
29      }
 30 }

 

おすすめ

転載: www.cnblogs.com/leeeeemz/p/12652967.html