BCSUtils备份

来源:互联网 发布:sql sever check 约束 编辑:程序博客网 时间:2024/06/05 05:39
public class BCSUtil {private static String hostBcs = "bcs.duapp.com";private static String accessKeyBcs = "";private static String secretKeyBcs = "";private static String bucketBcs = "dreamfactory";private static String baseContentBcs = "MBO" + "\n" + "Method=GET" + "\n"+ "Bucket=dreamfactory" + "\n" + "Object=";private BaiduBCS baiduBCS;private static BCSUtil instance;public static BCSUtil getInstance() {if (instance == null) {instance = new BCSUtil();}return instance;}private BCSUtil() {BCSCredentials credentials = new BCSCredentials(accessKeyBcs,secretKeyBcs);baiduBCS = new BaiduBCS(credentials, hostBcs);baiduBCS.setDefaultEncoding("UTF-8"); // Default UTF-8}public String putAvatarObject(String avatar64, int uid) {String objectName = getAvatarObjectName(uid);byte[] avatarBytes = Base64.decodeBase64(avatar64);ByteArrayInputStream inputStream = new ByteArrayInputStream(avatarBytes);ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("image/*");metadata.setContentLength(avatarBytes.length);try {PutObjectRequest request = new PutObjectRequest(bucketBcs,objectName, inputStream, metadata);BaiduBCSResponse<ObjectMetadata> response = baiduBCS.putObject(request);System.out.println("success!!   x-bs-request-id: "+ response.getRequestId());return getAvatarUrl(uid, objectName);} catch (Exception e) {System.out.println("faild!!");return null;}}private String getAvatarObjectName(int uid) {long time = System.currentTimeMillis();return "/avatar/user" + uid + "_" + time +".png";}private String getAvatarUrl(int uid, String objectName) {try {String signatureString = getSignature(objectName);String signString = "MBO:" + accessKeyBcs + ":" + signatureString;String urlString = "http://bcs.duapp.com/dreamfactory" + objectName+ "?sign=" + signString;return urlString;} catch (Exception e) {e.printStackTrace();return null;}}private String getSignature(String objectName)throws GeneralSecurityException, UnsupportedEncodingException {String contentBcs = baseContentBcs + objectName + "\n";SecretKey secretKey = null;byte[] keyBytes = secretKeyBcs.getBytes();secretKey = new SecretKeySpec(keyBytes, "HmacSHA1");Mac mac = Mac.getInstance("HmacSHA1");mac.init(secretKey);byte[] text = contentBcs.getBytes();String base64Signature = new String(Base64.encodeBase64(mac.doFinal(text))).trim();// URLEncoder.encode(base64Signature);return base64Signature;}}

原创粉丝点击