Java上传图片至七牛云
来源:互联网 发布:擎洲广达计价软件 编辑:程序博客网 时间:2024/06/05 05:37
首先,来看官方文档
https://developer.qiniu.com/kodo/sdk/1239/java(官方文档链接)
最简单的就是上传本地文件,直接指定文件的完整路径即可上传。
- //构造一个带指定Zone对象的配置类
- Configuration cfg = new Configuration(Zone.zone0());
- //...其他参数参考类注释
- UploadManager uploadManager = new UploadManager(cfg);
- //...生成上传凭证,然后准备上传
- String accessKey = "your access key";
- String secretKey = "your secret key";
- String bucket = "your bucket name";
- //默认不指定key的情况下,以文件内容的hash值作为文件名
- String key = null;
- try {
- byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
- Auth auth = Auth.create(accessKey, secretKey);
- String upToken = auth.uploadToken(bucket);
- try {
- Response response = uploadManager.put(uploadBytes, key, upToken);
- //解析上传成功的结果
- DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
- System.out.println(putRet.key);
- System.out.println(putRet.hash);
- } catch (QiniuException ex) {
- Response r = ex.response;
- System.err.println(r.toString());
- try {
- System.err.println(r.bodyString());
- } catch (QiniuException ex2) {
- //ignore
- }
- }
- } catch (UnsupportedEncodingException ex) {
- //ignore
- }
数据流上传
这里演示的是InputStream
对象的上传,适用于所有的InputStream
子类。这里的ByteInputStream
只用于演示目的,实际用法根据情况而定。
- //构造一个带指定Zone对象的配置类
- Configuration cfg = new Configuration(Zone.zone0());
- //...其他参数参考类注释
- //...生成上传凭证,然后准备上传
- String accessKey = "your access key";
- String secretKey = "your secret key";
- String bucket = "your bucket name";
- //如果是Windows情况下,格式是 D:\\qiniu\\test.png
- String localFilePath = "/home/qiniu/test.mp4";
- //默认不指定key的情况下,以文件内容的hash值作为文件名
- String key = null;
- Auth auth = Auth.create(accessKey, secretKey);
- String upToken = auth.uploadToken(bucket);
- String localTempDir = Paths.get(System.getenv("java.io.tmpdir"), bucket).toString();
- try {
- //设置断点续传文件进度保存目录
- FileRecorder fileRecorder = new FileRecorder(localTempDir);
- UploadManager uploadManager = new UploadManager(cfg, fileRecorder);
- try {
- Response response = uploadManager.put(localFilePath, key, upToken);
- //解析上传成功的结果
- DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
- System.out.println(putRet.key);
- System.out.println(putRet.hash);
- } catch (QiniuException ex) {
- Response r = ex.response;
- System.err.println(r.toString());
- try {
- System.err.println(r.bodyString());
- } catch (QiniuException ex2) {
- //ignore
- }
- }
- } catch (IOException ex) {
- ex.printStackTrace();
- }
下载文件- 公开空间
- 私有空间
文件下载分为公开空间的文件下载和私有空间的文件下载。
公开空间
对于公开空间,其访问的链接主要是将空间绑定的域名(可以是七牛空间的默认域名或者是绑定的自定义域名)拼接上空间里面的文件名即可访问,标准情况下需要在拼接链接之前,将文件名进行urlencode
以兼容不同的字符。
- String fileName = "七牛/云存储/qiniu.jpg";
- String domainOfBucket = "http://devtools.qiniu.com";
- String encodedFileName = URLEncoder.encode(fileName, "utf-8");
- String finalUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
- System.out.println(finalUrl);
私有空间
对于私有空间,首先需要按照公开空间的文件访问方式构建对应的公开空间访问链接,然后再对这个链接进行私有授权签名。
- String fileName = "七牛/云存储/qiniu.jpg";
- String domainOfBucket = "http://devtools.qiniu.com";
- String encodedFileName = URLEncoder.encode(fileName, "utf-8");
- String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
- String accessKey = "your access key";
- String secretKey = "your secret key";
- Auth auth = Auth.create(accessKey, secretKey);
- long expireInSeconds = 3600;//1小时,可以自定义链接过期时间
- String finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);
- System.out.println(finalUrl);
阅读全文
0 0
- Java上传图片至七牛云
- Java 上传图片和批量上传图片
- java 上传图片图片变红
- java 上传图片
- java中上传图片
- java上传图片代码
- java web上传图片
- java上传图片文件
- java上传图片
- java实现图片上传
- java图片上传
- Java图片上传代码
- java图片上传
- java 实现 图片上传
- java 图片上传
- Java+ajax+图片上传
- Java、ios图片上传
- uploadify java上传图片
- (二)java框架篇笔记库(27)
- 技术共享之AS代码混淆
- Mycat 安装和配置
- lc#3求字符串中不包含重复字符的最大长度子串
- vue动态路由配置
- Java上传图片至七牛云
- 虚拟机下Centos7如何设置静态IP地址
- (docker)入门实践、环境部署、基本操作指令、镜像库、数据卷
- poi、Excel工具包,支持map转excel,bean转excel
- extundelete恢复Ubuntu系统下git clean -fd(rm)误删除的文件
- Vim小技巧
- CentOS7中systemctl的使用
- Python
- HTML5全局属性汇总