七牛---用JAVA生成各种凭证代码

来源:互联网 发布:java中数组特点 编辑:程序博客网 时间:2024/06/05 04:32

用JAVA生成各种凭证代码

1 上传凭证:

import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import com.qiniu.util.StringUtils;import com.qiniu.util.UrlSafeBase64;public class TokenUpload {      public static void tokenupload() throws NoSuchAlgorithmException, InvalidKeyException{        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";//      String putpolicy = "{\"scope\":\"javademo\",\"deadline\":1457843866}";        String putpolicy = "{\"scope\":\"thinkox-shang:sdfsdf.jpg\",\"deadline\":1441940419}";        String t3 = UrlSafeBase64.encodeToString(putpolicy);        Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");        mac.init(new SecretKeySpec(StringUtils.utf8Bytes(SECRET_KEY),"HmacSHA1"));        String t2 = UrlSafeBase64.encodeToString(mac.doFinal(StringUtils.utf8Bytes(t3)));        System.out.println(ACCESS_KEY+":"+t2+":"+t3);    }    public static void main(String args[]) throws InvalidKeyException, NoSuchAlgorithmException{        tokenupload();    }}

2 下载凭证:

import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import com.qiniu.util.StringUtils;import com.qiniu.util.UrlSafeBase64;public class TokenDownload {    public static void tokendownload() throws NoSuchAlgorithmException, InvalidKeyException{        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";           String DownloadUrl  = "http://7xl4ck.com1.z0.glb.clouddn.com/photo1.jpg?e=1637846514";        Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");        mac.init(new SecretKeySpec(StringUtils.utf8Bytes(SECRET_KEY),"HmacSHA1"));        String t2 = UrlSafeBase64.encodeToString(mac.doFinal(StringUtils.utf8Bytes(DownloadUrl)));        System.out.println(DownloadUrl+"&token="+ACCESS_KEY+":"+t2);        }    public static void main(String args[]) throws InvalidKeyException, NoSuchAlgorithmException{        tokendownload();    }}

3 管理凭证:

import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import com.qiniu.util.StringUtils;import com.qiniu.util.UrlSafeBase64;public class TokenManage {    public static void tokenmanage() throws NoSuchAlgorithmException, InvalidKeyException{        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";    //删除方法        String signingStr  = "/delete/Y3BwZGVtbzpwaG90by0y\n";    //fetch方法    //  String signingStr  = "/fetch/aHR0cHM6Ly9zY29udGVudC5jZG5pbnN0YWdyYW0uY29tL2hwaG90b3MteGFmMS90NTEuMjg4NS0xNS9lMTUvMTEzODAyOTRfMTU5MDk3MDMwNzgyOTc1Nl8xNTQ5OTUzOTE5X24uanBn/to/cGhwZGVtbzpmZXRjaC5qcGc=\n";           Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");        mac.init(new SecretKeySpec(StringUtils.utf8Bytes(SECRET_KEY),"HmacSHA1"));        String t2 = UrlSafeBase64.encodeToString(mac.doFinal(StringUtils.utf8Bytes(signingStr)));        System.out.println(ACCESS_KEY+":"+t2);      }    public static void main(String args[]) throws InvalidKeyException, NoSuchAlgorithmException{        tokenmanage();          }}

4 同步saveas生成签名链接:
http://developer.qiniu.com/code/v6/api/dora-api/saveas.html#示例

package com.demo.dxy;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import com.qiniu.util.StringUtils;import com.qiniu.util.UrlSafeBase64;public class SaveasDemo {    public static void tokendownload() throws NoSuchAlgorithmException, InvalidKeyException{        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";        String urlbase64 = UrlSafeBase64.encodeToString("目标bucket:目标key");        String DownloadUrl  = "domain/key?imageView2/../..|saveas/"+urlbase64;        //例如可以参考下面的例子,注意domain前面没有http://        String DownloadUrl  = "7xrnxn.com1.z0.glb.clouddn.com/QQ20160402-2.png?imageMogr2/crop/!300x300a10a10|saveas/"+urlbase64;        Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");        mac.init(new SecretKeySpec(StringUtils.utf8Bytes(SECRET_KEY),"HmacSHA1"));        String t2 = UrlSafeBase64.encodeToString(mac.doFinal(StringUtils.utf8Bytes(DownloadUrl)));        //打印加好凭证的url        System.out.println(DownloadUrl+"/sign/"+ACCESS_KEY+":"+t2);     }    public static void main(String args[]) throws InvalidKeyException, NoSuchAlgorithmException{        tokendownload();    }}

5 生成刷新凭证:
七牛这边提供刷新缓存的接口:http://7xofkx.com5.z0.glb.clouddn.com/%E4%B8%83%E7%89%9BCDN%E5%88%B7%E6%96%B0%E6%8E%A5%E5%8F%A3V2.pdf
可以通过代码生成刷新的管理凭证,以下直接给出代码:
方法1,直接一步步拼接:

import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import com.qiniu.util.StringUtils;import com.qiniu.util.UrlSafeBase64; class RefreshToken {    public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException {        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";        String signingStr  = "/refresh\n";        Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");        mac.init(new SecretKeySpec(StringUtils.utf8Bytes(SECRET_KEY),"HmacSHA1"));        String t2 = UrlSafeBase64.encodeToString(mac.doFinal(StringUtils.utf8Bytes(signingStr)));        System.out.println(ACCESS_KEY+":"+t2);    }}

方法2,调用auth.sign()方法

import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import com.qiniu.util.Auth; class RefreshToken {    public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException {        String ACCESS_KEY = "AK";        String SECRET_KEY = "SK";        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);        String signingStr  = "/refresh\n";        String access_token = auth.sign(signingStr);        System.out.println(access_token);    }}
1 0