Spring Bootドッキング七牛雲アップロード画像(spring管理対象に渡す)


1.動機
七牛雲とのドッキングは初めてなので、インターネットで一周見て、一部の事例を参考にしました.しかし、ネット上のほとんどのケースには本格的なspringの特性がないことが分かりました.いっそのこと、私もレンガを捨てて玉を引くようにしました.例を書いてから参考にします.
2.準備
1、まずMaven座標を導入する

<dependency>
    <groupId>com.qiniugroupId>
    <artifactId>qiniu-java-sdkartifactId>
    <version>7.2.29version>
dependency>

<dependency>
    <groupId>net.coobirdgroupId>
    <artifactId>thumbnailatorartifactId>
    <version>0.4.8version>
dependency>
2、プロファイル.yml情報
qiniu:
	accessKey: **********************
	secretKey: *******************************
	bucket: *******
3、ここに重点を置きます.例えば、UploadManagerの対象はSpringに渡すことができますが、ほとんどの人が第三者APIを書く時は一例としての思想がないので、どこで使うかはNewに一回だけ!Springをずっと使って開発していますね!
/**
 * @Author yj 2020/7/3
 *      
 */
@Data
@Component //  @Configuration      Configuration    ,    @Component
@ConfigurationProperties(prefix="qiniu")
public class QiniuProp implements Serializable {
    private static final long serialVersionUID = -4882402762964443190L;

    /*** qiniu accessKey*/
    private String accessKey;
    /*** qiniu secretKey*/
    private String secretKey;
    /*** qiniu zone*/
    private String bucket;

    @Bean
    public UploadManager upQiniu(){
        return new UploadManager(new Configuration(Region.autoRegion()));
    }
}
4、業務層にUploadManagerを注入してput方法で画像をアップロードする
*新しい画像名を生成するにはuuidを使えばいいです.
圧縮画像は、Thumbnails.of.scale(1 f).outputQuallity(0.9 f).toOutputStream;*
    /**
     *         
     *
     * @Author yj
     * @Date 2020/7/3
     **/
    public String upImgToQiniu(MultipartFile file) {
        try {
            //         ,         
            String key = this.checkImage(file);
            //    
            byte[] uploadBytes = getCompressImg(file);
            Auth auth = Auth.create(qiniuProp.getAccessKey(), qiniuProp.getSecretKey());
            String upToken = auth.uploadToken(qiniuProp.getBucket());
            Response response = uploadManager.put(uploadBytes, key, upToken);
            log.info("[    ]       response  :{}", response.bodyString());
            if (!response.isOK()) {
                throw new GlobalException(ResultEnum.UPLOAD_FILE_ERROR);
            }
            return uploadImgProp.getImgBaseUrl() + key;
        } catch (IOException e) {
            log.error("[    ]      ", e);
            throw new GlobalException(ResultEnum.UPLOAD_FILE_ERROR);
        }
    }