首页 > 我用javascript做上传到七牛的功能,如何用java servlet来生成七牛的uptoken?

我用javascript做上传到七牛的功能,如何用java servlet来生成七牛的uptoken?

我用javascript做上传到七牛的功能,需要生成uptoken,于是下载了java SDK并用ajax请求SDK中里的getUpToken(Auth auth, String bucketname)生成uptoken并返回给javascript但是,始终无法完成上传操作,qiniu 的JS SDK中Qiniu.uploader里的init中绑定的任何事件都没有被触发,不知道是怎么回事?
是不是我生成uptoken的步骤不对,下面是程序清单:

        //设置好账号的ACCESS_KEY和SECRET_KEY
          String ACCESS_KEY =  params.getString("Access_Key");
          String SECRET_KEY =  params.getString("Secret_Key");
          //要上传的空间
          String bucketname = params.getString("Bucket_Name");

//          //密钥配置
          Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
 
        ret.put("uptoken", getUpToken(auth,bucketname));

        return ret;
    }
    
     public static String getUpToken(Auth auth, String bucketname){
          return auth.uploadToken(bucketname);
      }

不知道以上步骤是否正确,我看文档里注释说java实现的是简单上传,只需要bucketname,是否是因为这个原因造成生成的uptoken不正确的呢?
我看js sdk是说除了“ACCESS_KEY”、“SECRET_KEY”、“Bucket_Name”还需要文件名、过期时间等参数,不知道是不是这个原因?
请问,我应该如何在java中正确的生成uptoken?


使用官方的qiniu-sdk-xxx.jar
传送门

public static String getWebUptoken() {
        Config.ACCESS_KEY = PropertiesUtil.getString("qiniu.access.key");
        Config.SECRET_KEY = PropertiesUtil.getString("qiniu.secret.key");
        Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);
        // 请确保该bucket已经存在
        String bucketName = PropertiesUtil.getString("qiniu.bucket");
        PutPolicy putPolicy = new PutPolicy(bucketName);
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.HOUR_OF_DAY, 1);
        putPolicy.deadline = cal.getTimeInMillis() / 1000;
        String uptoken = null;
        try {
            uptoken = putPolicy.token(mac);
        } catch (AuthException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return uptoken;
    }
【热门文章】
【热门文章】