package com.campus.prime.core.utils; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.baidu.inf.iis.bcs.BaiduBCS; import com.baidu.inf.iis.bcs.auth.BCSCredentials; import com.baidu.inf.iis.bcs.http.HttpMethodName; import com.baidu.inf.iis.bcs.model.DownloadObject; import com.baidu.inf.iis.bcs.model.ObjectMetadata; import com.baidu.inf.iis.bcs.request.GenerateUrlRequest; import com.baidu.inf.iis.bcs.request.GetObjectRequest; import com.baidu.inf.iis.bcs.request.PutObjectRequest; import com.baidu.inf.iis.bcs.response.BaiduBCSResponse; public class BCSUtils { //BCS������ private static final String ACCESS_KEY = "3de4772c4c4d00162c355b7f0d803f41"; private static final String SECURE_KEY = "A96c98e72bbcfd46e2f94095039af09e"; private static final String HOST = "bcs.duapp.com"; private static final String BUCKET = "campus-media"; private static BaiduBCS baiduBCS = new BaiduBCS(new BCSCredentials(ACCESS_KEY, SECURE_KEY),HOST); private static final Log log = LogFactory.getLog(BCSUtils.class); /** * �ϴ��ļ���BCS * @param object BCS���ļ����ϴ�·�� * @param content �ϴ��ļ����ֽ����� * @throws IOException */ public static void upload(String object,byte[] content) throws IOException{ ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentEncoding("utf-8"); metadata.setContentLength(content.length); PutObjectRequest request = new PutObjectRequest(BUCKET, object,new ByteArrayInputStream(content), metadata); boolean isExist = baiduBCS.doesObjectExist(BUCKET, object); if(isExist){ System.out.println("file exits"); }else{ baiduBCS.putObject(request); } } /** * ���ļ����ϴ��ļ���BCS * * @param srcFile �����ļ����� * @param object BCS���ļ��Ĵ洢·�� * @return boolean �����Ƿ��ϴ��ɹ� */ public static boolean PutObjectByFile(File srcFile,String object){ PutObjectRequest request = new PutObjectRequest(BUCKET,object,srcFile); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("application/x-jpg"); request.setMetadata(metadata); BaiduBCSResponse<ObjectMetadata> response = baiduBCS.putObject(request); metadata = response.getResult(); //�ٶ��ĵ�̫���ˣ������� return true; } /** * ��BCS��ȡsrc * @param src * @return */ public static InputStream getObjectContent(String src){ GetObjectRequest getObjectRequest = new GetObjectRequest(BUCKET, src); BaiduBCSResponse<DownloadObject> response = baiduBCS.getObject(getObjectRequest); DownloadObject result = null; if(response != null) result = response.getResult(); if (result != null) return result.getContent(); return null; } /** * �����������ϴ��ļ���BCS * @param content * @param length * @param object * @return boolean */ public static boolean PutObjectByInputStream(InputStream content,String object,long length){ ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("application/x-jpg"); metadata.setContentLength(length); PutObjectRequest request = new PutObjectRequest(BUCKET, object, content,metadata); ObjectMetadata result = baiduBCS.putObject(request).getResult(); log.info(result.toString()); return true; } /** * ��ȡ��BCS��GET������Դ��Url��ַ * @param object * @return */ public static String generateUrl(String object){ GenerateUrlRequest generateUrlRequest = new GenerateUrlRequest(HttpMethodName.GET,BUCKET,object); ///���� return baiduBCS.generateUrl(generateUrlRequest); } }