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

我用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?


慕码人2483693
浏览 393回答 1
1回答

BIG阳

使用官方的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;    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java