使用七牛java SDK qiniu-java-sdk-7.0.11.jar包进行上传测试。如果不设置上传策略,一切正常。如果设置上传策略,上传也是正常,但是上传策略无效。
设置了:
fsizeLimit=1000000
mimeLimit=image/*
使用这个策略生成token,上传文件的大小是4820861,文件的格式不是图片文件是普通二进制格式的文件,但是上传还是能正常完成,没有给出任何不符合上传策略的错误提示。
测试部分代码如下
public String getToken(Long fsizeLimit, String mimeLimit, Integer deleteAfterDays) {
StringMap policy = new StringMap();
if (null != fsizeLimit && fsizeLimit > 0) {
policy.put("fsizeLimit", fsizeLimit);
}
if (!StringUtils.isEmpty(mimeLimit)) {
policy.put("mimeLimit", mimeLimit);
}
if (null != deleteAfterDays && deleteAfterDays > 0) {
policy.put("deleteAfterDays", deleteAfterDays);
}
Auth auth = Auth.create("xxxxxxxxxxxxx", "yyyyyyyyyyyyyyy");
return auth.uploadToken("test");
}
public void doUpload(File file, String brokerpath, String token) throws IOException {
Recorder recorder = new FileRecorder(brokerpath);
UploadManager uploadManager = new UploadManager(recorder);
Response res = uploadManager.put(file, file.getName(), token);
System.out.println(res.toString());
}
public static void main(String[] args) throws IOException {
QiniuUploadTest t = new QiniuUploadTest();
String token = t.getToken(1000000L, "image/*", 1);
System.out.println("TOKEN:" + token);
File file = new File("d:/test.pqt");
System.out.println("File size:" + file.length());
t.doUpload(file, "d:/tmp", token);
}
执行结果
TOKEN:yEHtUCAddqj0IGbHqMjE2x7OsuMDRX782QAzsfhp:v_2pqML2YSnwDb4S9VYAvxkPjno=:eyJzY29wZSI6ImRsenRjIiwiZGVhZGxpbmUiOjE0ODcxMzg5NDR9
File size:4820861
{ResponseInfo:com.qiniu.http.Response@587d1d39,status:200, reqId:gRYAAG38kZa2XaMU, xlog:s.ph;s.ph;PFDS;PFDS:1;PTFDM:20;s.gh;PFDS/613;s.gh;PFDS/613;s.gh/EOF;PFDS/620;AUTHPROXY_xs_out:5/620;PTFDM:5;PTFDS;rdb.g:1/no such key;DBD:1/404;v4.exist:2/Document not found;rs29_4.ins;qtbl.ins:3;mc.s;RS:4;rs.put:9;UP:55;UP:56, xvia:, adress:up.qiniu.com/115.231.97.46:80, duration:0.000000 s, error:null}
上传文件能下载
使用nodeJS版的SDK,发现上传策略能正常生效。使用最新的java版的SDK Release v7.2.4版本,上传策略还是不能生效。
代码有问题,策略设置了,但是在获取token的时候没有使用。