• Java后台上传图片到七牛云


    一:

    看某马的培训视频,要用到fastdfs,配置起来挺麻烦,于是决定自己弄一个图片服务器,因为之前做安卓项目的时候用过七牛云的SDK感觉挺ok

    ,于是改用七牛云。使用七牛云的对象存储,需要一个备案的域名,用来绑定存储空间,如果只是短时间用,七牛云倒是会提供一个30天的临时

    域名。以自己的域名加一个前缀,比如media.XXX.cn之后会获得一个CNAME,然后在域名厂商的控制台添加解析,比如我是在阿里云买的:

    这样就能使用了,访问图片就是medis.XXX.cn/example.jpg

    二:

    接下来到后台传送模块的编写。

    添加七牛云依赖到pom(建议使用官方文档推荐的版本)

    <dependency>
                <groupId>com.qiniu</groupId>
                <artifactId>qiniu-java-sdk</artifactId>
                <version>[7.2.0, 7.2.99]</version>
            </dependency>

    由于Spring接收文件的类型是MultipartFile,需要先转成File文件。

    //File代入参数是临时文件的目录,在磁盘新建一个空文件就行,否则好像会报异常。
    File file = new File("C:\test");
    //uploadFile是MultipartFile对象 uploadFile.transferTo(file);
    //得到图片的url String url = QiniuCloudUtil.upload(file, preName); //生成的文件会存在本地,我这里选择删除它 file.delete();

    工具如下,不复杂:

    import java.io.File;
    import java.io.IOException;
    import com.qiniu.common.QiniuException;
    import com.qiniu.common.Zone;
    import com.qiniu.http.Response;
    import com.qiniu.storage.Configuration;
    import com.qiniu.storage.UploadManager;
    import com.qiniu.util.Auth;
    
    import org.springframework.util.StringUtils;
    
    /**
     * @author yintianhao
     * @createTime 07 21:07
     * @description 七牛云工具
     */
    public class QiniuCloudUtil {
    
        // 设置需要操作的账号的AK和SK
        private static final String ACCESS_KEY = "*******";
        private static final String SECRET_KEY = "*******";
    
        // 要上传的空间名
        private static final String bucketname = "****";
    
        // 密钥
        private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    
        //上传
        public static String upload(File file, String key) throws IOException{
            // 创建上传对象,Zone*代表地区
            Configuration configuration = new Configuration(Zone.zone2());
            UploadManager uploadManager = new UploadManager(configuration);
            try {
                // 调用put方法上传
                String token = auth.uploadToken(bucketname);
                if(StringUtils.isEmpty(token)) {
                    System.out.println("未获取到token,请重试!");
                    return null;
                }
                print("File name = "+file.getName());
                Response res = uploadManager.put(file,key,token);
                // 打印返回的信息
                if (res.isOK()){
                    return key;
                }
            }catch (QiniuException e) {
                Response r = e.response;
                // 请求失败时打印的异常的信息
                e.printStackTrace();
                System.out.println("error "+r.toString());
                try {
                    // 响应的文本信息
                    System.out.println(r.bodyString());
                } catch (QiniuException e1) {
                    System.out.println("error "+e1.error());
                }
            }
            return null;
        }
    }

    end。

  • 相关阅读:
    使用Docker容器来源码编译etcd
    PHP开发第一个扩展
    CI框架SESSION重写
    XMLHttpRequest的跨域请求
    PHP哈希表碰撞攻击
    empty、isset、is
    PHP实现4种排序算法
    C实现9种排序算法
    Debian、Ubuntu常用命令大全
    Java中 int和Integer的区别+包装类
  • 原文地址:https://www.cnblogs.com/Yintianhao/p/12178659.html
Copyright © 2020-2023  润新知