简介:

七牛云存储(以下简称七牛),是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管、传输加速以及图片、音视频等富媒体的云处理服务。


使用java客户端上传图片附件

1.申请账号

登陆 http://www.qiniu.com/ 注册申请一个七牛账号,获取账号的两对密钥(Access/Secret Key),以下记为AK/SK,创建一个空间,假设名为 qiniubucket

2.使用java客户端上传一个图片到七牛空间

创建一个配置文件,放到类路径的根目录,用于保存七牛的账号信息:qiniu.properties,内容:

# qiniu properties
qiniu.ak=pKC0JUHmxxxxxxxxxkTpYcRyP1I9ASML9C_
qiniu.sk=MhEHoYqTpxxxxxxxxxxUY16nk_933o-wNDF
qiniu.bucket=conxxxx
PS:请修改为自己的七牛账号信息

工具类如下:

import com.baidu.ueditor.upload.StorageManager;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

import java.io.IOException;
import java.util.Properties;

public class UEQiNiuUtil {
    public String ak;
    public String sk;
    public String bucket;
    public UploadManager uploadManager;

    public void init() {
        try {
            Properties properties = new Properties();
            properties.load(UEQiNiuUtil.class.getResourceAsStream("/qiniu.properties"));
            ak = properties.getProperty("qiniu.ak");
            sk = properties.getProperty("qiniu.sk");
            bucket = properties.getProperty("qiniu.bucket");
            uploadManager = new UploadManager();
            StorageManager.ueQiNiuUtil = this;//TODO: add hook to UE
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public String getUptoken() {
        // TODO: should be cached for performance
        String uptoken = Auth.create(ak, sk).uploadToken(bucket);
        return uptoken;
    }

    public void uploadFileToQiNiu(String fileKey, String file) {
        try {
            Response response = uploadManager.put(file, fileKey, getUptoken());
            // see response
        } catch (QiniuException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        UEQiNiuUtil ueQiNiuUtil = new UEQiNiuUtil();
        ueQiNiuUtil.init();
        ueQiNiuUtil.uploadFileToQiNiu("aabbcc", "/home/conquer/Desktop/baidu.png");
    }
}

注:上文java中的 StorageManager 是结合 百度编辑器 UEditor使用的,可以直接删除,了解七牛与UEditor 的结合,请点击

java源码依赖:

<dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.0.8</version>
        </dependency>



这样就可以把图片上传到自己的空间,通过“空间-内容管理”可查看,也可以通过七牛分配的域名加图片地址访问到该图片资源,如果希望设置上传到七牛后的 回调(七牛服务器回调一个指定的服务器用于报告上传结果信息)信息,则添加 callbackUrl 和 callbackBody 等信息。


使用js上传到七牛

七牛允许通过html/js技术直接上传图片到七牛服务器,并允许设置回调等,通过html/js技术上传图片同样需要先生成一个上传 token(和java生成token的方式一样),也可以自定义一些变量等,如果需要指定七牛的返回结果可以结合token生成时指定returnUrl  、returnBody等信息完成,不过七牛返回的数据格式固定为 application/json 的,貌似不能自行指定。

关于七牛上传详细了解:http://developer.qiniu.com/article/kodo/kodo-developer/index.html#put-policy

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐