メディアを春のブートの中でメディアをアップロードする
9101 ワード
メディア機能を備えたソフトウェアを構築する開発者はメディアをどこかに保管しなければならず、ほとんどの場合、transform 最適な経験のために最適化.すべてのタスクは、Cloudinaryのエンドツーエンドのイメージで実行することができます-とビデオ管理ソリューション.
しかし、しばらく前に春のブートREST APIを構築している間、私はCloutharyとの統合が闘争であることを発見しました.また、曇りのドキュメントはかなり良いですが、春のブートのためのワークフローを記述していない、私は自分でそれを把握する必要があります.
このチュートリアルでは、春のブートアプリケーションからCloudaryにプログラムをアップロードするプロセスを通して、あなたの時間と努力を私のコードを動作させるために入れなければならない保存します.サンプル参照のために、私のものを見てくださいSpring Boot API on GitHub .
前提条件の取得
次の専門知識が必要です. RESTful API設計の基本的理解 スプリングブートとJava 8の知識 また、Java IDEを手にします.
Cloudaryアカウントの設定
まず、まだ持っていないのであれば.sign up ストレージ、変換、および帯域幅のクレジットを提供する無料のCloudaryアカウント.また、より多くのクレジットやその他の機能の有料サブスクリプションにアップグレードします.
符号なしアップロードの有効化
次に、あなたのCloudaryアカウントのデフォルトで符号なしアップロードを有効にしますupload preset , その後、アカウントのメディアライブラリにアップロード要求を削除せずにメディアをアップロードすることができます.
アップロードプリセットを設定するには、次の手順を実行するには、中央設定のアップロードオプションを設定し、それぞれのアップロードの設定を指定する必要がなくなり、プリセットを有効にします. あなたのCloudaryアカウントのダッシュボードで、[設定]をクリックし、[アップロード]タブの上部にある[設定]をクリックします.アップロードプリセットセクションにスクロールダウンします. 私の未署名プリセットの横にあるをクリックし、次の画面で、署名モードを符号なしに設定します.
クラウドブートアプリケーションへのクラウドの統合
春のブートアプリケーションにCloudaryを統合する最も簡単な方法は、CloudinaryのMavenの依存関係です.次の手順に従います.
あなたのアプリケーションの
クリエイトアbean メソッド インザメイン
画像のアップロード
上で参照したSpring Bootアプリケーションの下にあるコードスニペットは、トップダウンアプローチでCloudaryに画像をアップロードできます.コメントアウトされた行を無視する彼らはこのチュートリアルに関連していません.
RESTController
The The The 注意
{注}
サービス
思い出してください
ブール PostmanでアップロードをテストするにはStack Overflow page .
サイズを10 MBまでアップロードするには、アプリケーションのスプリングサーブレットのmultipartファイルサイズを
動画アップロード
Cloudaryでプログラムをビデオでアップロードするには、画像をアップロードするための同じプロセスに従ってください.注意してください.
参考文献
さらに参考にするには、次のようにします. Cloudinary’s documentation on image and video uploads Teamwork API on GitHub
しかし、しばらく前に春のブートREST APIを構築している間、私はCloutharyとの統合が闘争であることを発見しました.また、曇りのドキュメントはかなり良いですが、春のブートのためのワークフローを記述していない、私は自分でそれを把握する必要があります.
このチュートリアルでは、春のブートアプリケーションからCloudaryにプログラムをアップロードするプロセスを通して、あなたの時間と努力を私のコードを動作させるために入れなければならない保存します.サンプル参照のために、私のものを見てくださいSpring Boot API on GitHub .
前提条件の取得
次の専門知識が必要です.
Cloudaryアカウントの設定
まず、まだ持っていないのであれば.sign up ストレージ、変換、および帯域幅のクレジットを提供する無料のCloudaryアカウント.また、より多くのクレジットやその他の機能の有料サブスクリプションにアップグレードします.
符号なしアップロードの有効化
次に、あなたのCloudaryアカウントのデフォルトで符号なしアップロードを有効にしますupload preset , その後、アカウントのメディアライブラリにアップロード要求を削除せずにメディアをアップロードすることができます.
アップロードプリセットを設定するには、次の手順を実行するには、中央設定のアップロードオプションを設定し、それぞれのアップロードの設定を指定する必要がなくなり、プリセットを有効にします.
クラウドブートアプリケーションへのクラウドの統合
春のブートアプリケーションにCloudaryを統合する最も簡単な方法は、CloudinaryのMavenの依存関係です.次の手順に従います.
あなたのアプリケーションの
pom.xml
ファイルに依存関係のリストに雲の依存関係を追加します.<dependency>
<groupId>com.cloudinary</groupId>
<artifactId>cloudinary-http44</artifactId>
<version>1.17.0</version>
</dependency>
@bean
あなたのCloudary構成を返すメソッドレベル注釈.この方法では、ステップ1で構成された依存性をアプリケーション全体で適用できます.Application.java
アプリケーションのクラスを次に示します.変数の置換cloud_name
, api_key
, and api_secret
それらの値で、あなたのCloudaryアカウントのダッシュボードに表示されます. @Bean
public Cloudinary cloudinaryConfig() {
Cloudinary cloudinary = null;
Map config = new HashMap();
config.put("cloud_name", cloudName);
config.put("api_key", apiKey);
config.put("api_secret", apiSecret);
cloudinary = new Cloudinary(config);
return cloudinary;
}
今すぐあなたの春のブートアプリケーションのどこにCloudaryを使用することができます.画像のアップロード
上で参照したSpring Bootアプリケーションの下にあるコードスニペットは、トップダウンアプローチでCloudaryに画像をアップロードできます.コメントアウトされた行を無視する彼らはこのチュートリアルに関連していません.
RESTController
private final CloudinaryGifService cloudinaryGifService;
private final UserService userService;
@PostMapping("/gifs")
public ResponseEntity<LinkedHashMap<String, Object>> uploadGif(@RequestParam("gifFile")
MultipartFile gifFile, Authentication authentication, @RequestParam("title") String title) throws IOException {
// User currentUser =
// userService.findUserByEmail(authentication.getName()); // Authorization
String url = cloudinaryGifService.uploadFile(gifFile);
cloudinaryGifService.saveGifToDB(url, title , currentUser);
// LinkedHashMap<String, Object> jsonResponse = cloudinaryGifService.modifyJsonResponse("create", URL);
return new ResponseEntity<>(jsonResponse,HttpStatus.CREATED);
}
上のコードでcloudinaryGifService
変数は、CloudinaryService
アップロードするロジックを保持するクラスMultipartFile
Cloudinaryにアップロードする前に、通常のファイルにファイルします.uploadGif
メソッドはgif
タイトルとgif
イメージとしてMultipartFile
ファイル.Service
クラスは、あなたの曇りのアカウントにイメージをアップロードして、イメージを保存しますgif
) URLとタイトルのアプリケーションのデータベースに.gif
チームワークAPIがフォーマットタイプGIFのイメージだけを扱うので、コードで指定されます.gif
). 実際には、このプロセスは他の形式のイメージファイル、例えば.png
, .jpeg
, など{注}
サービス
思い出してください
CloudinaryService
クラスは、変換して、曇りにイメージをアップロードするために、ロジックを含みます.以下に問題のコードを示します.private final Cloudinary cloudinaryConfig;
public String uploadFile(MultipartFile gif) {
try {
File uploadedFile = convertMultiPartToFile(gif);
Map uploadResult = cloudinaryConfig.uploader().upload(uploadedFile, ObjectUtils.emptyMap());
boolean isDeleted = uploadedFile.delete();
if (isDeleted){
System.out.println("File successfully deleted");
}else
System.out.println("File doesn't exist");
return uploadResult.get("url").toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private File convertMultiPartToFile(MultipartFile file) throws IOException {
File convFile = new File(file.getOriginalFilename());
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes());
fos.close();
return convFile;
}
上のコードでcloudinaryConfig
からクラウドの設定をインスタンス化します@bean
以前に作成したメソッド.uploadFile
変換MultipartFile
を指定した場合、convertMultiPartToFile
メソッドinterface MultipartFile アップロードされたファイルをmultipart request . その後uploadFile
ファイルをCloudinaryにアップロードし、GIFイメージのURLを返しますRestController uploadFile
メソッド.isDeleted
アップロード後にファイルが削除されたかどうかを確認します.サイズを10 MBまでアップロードするには、アプリケーションのスプリングサーブレットのmultipartファイルサイズを
application.properties
ファイルspring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
動画アップロード
Cloudaryでプログラムをビデオでアップロードするには、画像をアップロードするための同じプロセスに従ってください.注意してください.
upload
方法は100 MBまでファイルをアップロードします.より大きいサイズのビデオのためにupload_large 大きなファイルをChunksでClouksにアップロードする方法cloudinary.uploader().uploadLarge("my_large_video.mp4", ObjectUtils.asMap("resource_type", "video"));
必ず更新してくださいCloudinaryService
クラスとuploadFile
次のようにします.public String uploadFile(MultipartFile gif) {
try {
File uploadedFile = convertMultiPartToFile(gif);
Map uploadResult = cloudinaryConfig.uploader().uploadLarge(uploadedFile, ObjectUtils.emptyMap());
boolean isDeleted = uploadedFile.delete();` \
if (isDeleted){
System.out.println("File successfully deleted");
}else
System.out.println("File doesn't exist");
return uploadResult.get("url").toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
また、限界を上げるspring.servlet.multipart.max-request-size
あなたのapplication.properties
ファイル.参考文献
さらに参考にするには、次のようにします.
Reference
この問題について(メディアを春のブートの中でメディアをアップロードする), 我々は、より多くの情報をここで見つけました https://dev.to/hackmamba/uploading-media-in-spring-boot-programmatically-with-cloudinary-35bmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol