七牛云Java SDK 覆盖上传文件以及查看存储空间的文件

  • 七牛云Java SDK 覆盖上传文件以及查看存储空间的文件已关闭评论
  • 3,422次阅读
  • A+
所属分类:Java

七牛云Java SDK 覆盖上传文件以及查看存储空间的文件

七牛云文件上传

  1. Maven依赖
<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>[7.2.0, 7.2.99]</version>
</dependency>
  1. 创建控制层(多文件上传)
@RequestParam(value = "file", required = false) List<MultipartFile> files
  1. 获取七牛云上传凭证

先获取七牛云的上传凭证
两个key就是上面提到的密钥
bucket是你创建的对象存储的名称

String accessKey = "access key";
String secretKey = "secret key";
String bucket = "bucket name";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
  1. 上传示例
    如果传多个文件,可套用下述实现代码
        //七牛云文件上传
        String filePath = "/Documents/code/111.txt";
       //第一种方式: 指定具体的要上传的zone
       /**
         *注:该具体指定的方式和以下自动识别的方式选择其一即可
         *上传的空间(bucket)的存储区域为华东时
         *Zone z = Zone.zone0();
         *上传的空间(bucket)的存储区域为华北时
         *Zone z = Zone.zone1();
         *上传的空间(bucket)的存储区域为华南时
         *Zone z = Zone.zone2();
         */
      //第二种方式: 自动识别要上传的空间(bucket)的存储区域是华东、华北、华南。
        Configuration configuration = new Configuration(Zone.zone1());
        UploadManager uploadManager = new UploadManager(configuration);
        //生成上传凭证,然后准备上传
        String accessKey = QiNiuConstant.ACCESS_KEY;
        String secretKey = QiNiuConstant.SECRET_KEY;
        String bucket = "mx";
        String key = "static/js/111.txt";
        Auth auth = Auth.create(accessKey, secretKey);
        //insertOnly 如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1
        String upToken = auth.uploadToken(bucket, key, 3600, new StringMap().put("insertOnly", 0));
        try {
            Response response = uploadManager.put(filePath, 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
            }
        }

获取七牛云存储列表

       //查看列表
        String accessKey = QiNiuConstant.ACCESS_KEY;
        String secretKey = QiNiuConstant.SECRET_KEY;
        String bucket = "mx-book";
        //构造一个带指定Zone对象的配置类
        Configuration cfg = new Configuration(Zone.zone1());

        Auth auth = Auth.create(accessKey, secretKey);
        BucketManager bucketManager = new BucketManager(auth, cfg);

        //文件名前缀
        String prefix = "";
        //每次迭代的长度限制,最大1000,推荐值 1000
        int limit = 1000;
        //指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串
        String delimiter = "";

        BucketManager.FileListIterator fileListIterator = bucketManager.createFileListIterator(bucket, prefix, limit, delimiter);

        while (fileListIterator.hasNext()) {
            //处理获取的file list结果
            FileInfo[] items = fileListIterator.next();
            for (FileInfo item : items) {
                System.out.println(item.key);
                System.out.println(item.hash);
                System.out.println(item.fsize);
                System.out.println(item.mimeType);
                System.out.println(item.putTime);
                System.out.println(item.endUser);
            }
        }

  • 我的微信
  • 加好友一起交流!
  • weinxin
  • 微信公众号
  • 关注公众号获取分享资源!
  • weinxin