Java结合百度云存储BCS代码分享(2)
上传与删除文件: 复制代码 代码如下: /** * 上传文件到BCS * * @return boolean true表示上传成功 * @param file * 需要上传的文件 * * ******/ public boolean putObject(File
上传与删除文件:
复制代码 代码如下:
/**
* 上传文件到BCS
*
* @return boolean true表示上传成功
* @param file
* 需要上传的文件
*
* ******/
public boolean putObject(File file) {
boolean result = true;
try {
// 必须有“/”开头
PutObjectRequest request = new PutObjectRequest(bucket, "/" + file.getName(), file);
// 设置Object的元信息
ObjectMetadata metadata = new ObjectMetadata();
request.setMetadata(metadata);
baiduBCS.putObject(request);
LoggerService.addLoggerByOperate("BCS:上传文件到BCS:"+file.getName());
} catch (Exception e) {
result = false;
LoggerService.addLoggerByError(e.getMessage());
e.printStackTrace();
}
return result;
}
/**
* 通过Object名删除BCS上面的文件
*
* @param object
* Object的名字
* @return boolean true删除成功
* *****/
public boolean deleteObject(String object) {
boolean result = true;
try {
if (existObject(object)) {
baiduBCS.deleteObject(bucket, "/" + object);
LoggerService.addLoggerByOperate("BCS:删除BCS上的文件:"+object);
}
} catch (Exception e) {
result = false;
e.printStackTrace();
LoggerService.addLoggerByError(e.getMessage());
}
return result;
}
判断是否存在Object:
复制代码 代码如下:
/**
* 判断该文件是否存在于BCS
*
* @param object
* object名
* @return boolean true表示存在
* ***/
public boolean existObject(String object) {
boolean result = false;
try {
result = baiduBCS.doesObjectExist(bucket, "/" + object);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
自己写的生成下载地址:
复制代码 代码如下:
/**
* 获取Object的下载地址
*
* @param object
* Object名字
* @return String 返回下载的url
*******/
public String getUrl(String object) {
// 需要加密的内容
String data = "MBO" + "\n" + "Method=GET" + "\n" + "Bucket=" + bucket + "\n" + "Object=/" + object + "\n";
// 加密的结果
String hmacsha1 = getHmacSHA1(secretKey, data);
// 构造sign参数
String sign = "MBO:" + accessKey + ":" + hmacsha1;
// url
StringBuilder builder = new StringBuilder();
builder.append("http://");
builder.append(host);
builder.append("/");
builder.append(bucket);
builder.append("/");
builder.append(object);
builder.append("?sign=");
builder.append(sign);
return builder.toString();
}
// 签名加密
private String getHmacSHA1(String secretKey, String data) {
String result = "";
try {
SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(data.getBytes());
Base64 base64 = new Base64();
@SuppressWarnings("static-access")
byte[] enbytes = base64.encodeBase64Chunked(rawHmac);
result = new String(enbytes, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
修改过的SDK生成地址:
精彩图集
精彩文章