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