import com.qiniu.common.Zone;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Task {
    private static final String accessKey = "xxx";
    private static final String secretKey = "xxx";
    private static final String bucket = "xxx";
    public static final String domain = "http://xxx.qiniudn.com/";

    public static void main(String[] args) throws IOException {
        //构造一个带指定Zone对象的配置类
        Configuration cfg = new Configuration(Zone.zone0());
        //...其他参数参考类注释

        Auth auth = Auth.create(accessKey, secretKey);
        BucketManager bucketManager = new BucketManager(auth, cfg);
        //文件名前缀
        String prefix = "wp-content/uploads";
        //每次迭代的长度限制,最大1000,推荐值 1000
        int limit = 1000;
        //指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串
        String delimiter = "";
        //列举空间文件列表
        BucketManager.FileListIterator fileListIterator =
                bucketManager.createFileListIterator(bucket, prefix, limit, delimiter);
        List<String> nameList = new ArrayList<String>();
        while (fileListIterator.hasNext()) {
            //处理获取的file list结果
            FileInfo[] items = fileListIterator.next();
            if (items == null) {
                continue;
            }
            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);
                System.out.println("------------");
                nameList.add(domain + item.key);
            }
            System.out.println("total: " + items.length);
        }
        File file = new File("out.txt");
        PrintWriter out = new PrintWriter(file);
        for (String name : nameList) {
            out.println(name);
        }
        out.flush();
        out.close();
        System.out.println(file.getAbsolutePath());
    }
}