zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/Yintianhao/p/12178659.html
Copyright © 2011-2022 走看看