七牛是个好东东。但是其工具qrsync只能往上sync不能往下sync。相当的不方便么。官方只提供了一个list的接口和例程。http://developer.qiniu.com/docs/v6/sdk/java-sdk.html#rsf-listPrefix
如何用最偷懒的办法把七牛上的数据拖下来呢?稍微改下例程.
/**
* Created by fangjian on 14-12-1.
* 把生成的index.html文件放到microcard.qiniudn.com下
* 使用wget命令镜像站点
* wget -c -m http://<你的bucket>.qiniudn.com/index.html
*/
import com.qiniu.api.auth.digest.Mac;
import com.qiniu.api.config.Config;
import com.qiniu.api.rsf.ListItem;
import com.qiniu.api.rsf.ListPrefixRet;
import com.qiniu.api.rsf.RSFClient;
import com.qiniu.api.rsf.RSFEofException;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
public class ListPrefix {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
// List<ListItem> all=fakeList();//for test
List<ListItem> all=getList();
printList(all);
buildHtml(all);
}
public static List<ListItem> getList(){
final String bucketName="<你的bucket>";
Config.ACCESS_KEY = "<你的ACCESS_KEY>";
Config.SECRET_KEY = "<你的SECRET_KEY>";
Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);
RSFClient client = new RSFClient(mac);
String marker = "";
List<ListItem> all = new ArrayList<ListItem>();
ListPrefixRet ret = null;
while (true) {
ret = client.listPrifix(bucketName, "", marker, 1000);
marker = ret.marker;
all.addAll(ret.results);
if (!ret.ok()) {
// no more items or error occurs
break;
}
}
if (ret.exception.getClass() != RSFEofException.class) {
// error handler
}
return all;
}
public static void printList(List<ListItem> all){
for(ListItem item:all){
System.out.println(item.key);
}
}
public static List<ListItem> fakeList(){
ListItem a=new ListItem();
a.key="abc";
ListItem b=new ListItem();
b.key="def";
ArrayList<ListItem> listItems=new ArrayList<ListItem>();
listItems.add(a);
listItems.add(b);
return listItems;
}
public static void buildHtml(List<ListItem> all) throws FileNotFoundException, UnsupportedEncodingException {
PrintWriter writer = new PrintWriter("index.html", "UTF-8");
writer.println("<HTML><BODY>");
for(ListItem item:all){
writer.println(makeALink(item.key));
}
writer.println("</BODY><HTML>");
writer.close();
}
public static String makeALink(String href){
String link="<a href='"+href+"'>"+href+"</a><br/>";
return link;
}
}
运行程序会得到一个index.html,把这个index.html上传到七牛。
然后用wget -c -m http://<你的bucket>.qiniudn.com/index.html
大功告成!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。