ACCESS云存储之覆盖上传——七牛云

  • 概述: 
    当地文件修改,然后要求覆盖在七牛存储空间原本已经存在的文书,那么此时必要动用七牛提供的掩盖上传;

  • 问题: 
    何以落实,以及落实思路?

  • 思路: 
    1.七牛提供上传策略,指定scope为< bucketName> : < key> 
    即可达成覆盖上传,如图: 
    ACCESS 1 
    七牛提供关于上传策略的辨证文档链接如下: 
    http://developer.qiniu.com/article/developer/security/put-policy.html

    2.如约七牛的支付规范,获取Auth——-》获取token——》执行覆盖上传的作业逻辑——》查看结果

  • 示范如下:(注:当前采纳的是qiniu-Java-sdk-7.2.1.jar)

    1 package com.qiniu.kodo;
    2
    3 import com.qiniu.base.AccountMgr;
    4 import com.qiniu.common.QiniuException;
    5 import com.qiniu.common.Zone;
    6 import com.qiniu.http.Response;
    7 import com.qiniu.storage.Configuration;
    8 import com.qiniu.storage.UploadManager;
    9 import com.qiniu.util.Auth;
    10 import com.qiniu.util.StringMap;
    11
    12 /
    13 七牛:覆盖上传
    14

    15 @author xuhuanchao
    16
    ACCESS,
    17 */
    18 public class OverrideUpload {
    19
    20 //获取授权对象
    21 Auth auth = Auth.create(AccountMgr.ACCESS_KEY, AccountMgr.SECRET_KEY);
    22
    23 //第一种艺术: 指定具体的要上传的zone
    24 //注:该具体指定的措施和以下自动识其他措施拔取其一即可
    25 //要上传的空中(bucket)的贮存区域为华东时
    26 // Zone z = Zone.zone0();
    27 //要上传的上空(bucket)的囤积区域为华北时
    28 // Zone z = Zone.zone1();
    29 //要上传的半空中(bucket)的存储区域为华南时
    30 // Zone z = Zone.zone2();
    31
    32 //第两种方法: 自动识别要上传的上空(bucket)的储存区域是华东、华北、华南。
    33 Zone zone = Zone.autoZone();
    34
    35 Configuration config = new Configuration(zone);
    36 UploadManager uploadManager = new UploadManager(config);
    37
    38 /

    39 获取凭证
    40
    @param bucketName
    41 空间名称
    42
    @return
    43 /
    44 public String getUpToken(String bucketName, String key) {
    45 //insertOnly 如若指望只好上传指定key的公文,并且不容许修改,那么可以将上边的 insertOnly 属性值设为 1
    46 return auth.uploadToken(bucketName, key, 3600, new StringMap().put(“insertOnly”, 0));
    47 }
    48
    49 /**
    50
    覆盖上传
    51 @param path
    52
    上传文件路径
    53 @param bucketName
    54
    空间名
    55 @param key
    56
    文件名
    57 /
    58 public void overrideUpload(String path, String bucketName, String key) {
    59 try {
    60 String token = getUpToken(bucketName, key);//获取 token
    61 Response response = uploadManager.put(path, key, token);//执行上传,通过token来分辨 该上传是“覆盖上传”
    62 System.out.println(response.toString());
    63 } catch (QiniuException e) {
    64 System.out.println(e.response.statusCode);
    65 e.printStackTrace();
    66 }
    67 }
    68
    69 /**
    70
    主函数:测试
    71
    72
    @param args
    73 */
    74 public static void main(String[] args) {
    75 // 上传文件的途径,因为在Mac下,所以路径和windows下分裂76 String filePath = “/Users/xuhuanchao/Documents/admin/mind/imgs/admin_3.jpg”;
    77 // 要上传的空间
    78 String bucketName = “java-bucket”;
    79 // 上流传七牛后保存的公文名
    80 String key = “admin_3.jpg”;
    81
    82 new OverrideUpload().overrideUpload(filePath, bucketName, key);
    83 }
    84
    85 }

 

相关文章