从网络爬取图片,生成缩略图,保存到百度云存储!
发布时间:2020-05-24 22:39:24 所属栏目:Java 来源:互联网
导读:从网络爬取图片,生成缩略图,保存到百度云存储!
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 http://my.oschina.net/tdd/blog/365160public class Sample {
private static final Log log = LogFactory.getLog(Sample.class);
// ----------------------------------------
static String host = "bcs.duapp.com";
static String accessKey = "XXXXXXXXXXXXXXXXXX"; //注册百度的时候,分配的accessKey
static String secretKey = "XXXXXXXXXXXXXXXXXXXXXXXX"; //注册百度的时候,分配的secretKey
static String bucket = "XXXbucket"; //在百度平台建立的bucket
public static void main(String[] args) throws URISyntaxException,IOException {
// TODO Auto-generated method stub BCSCredentials
BCSCredentials credentials = new BCSCredentials(accessKey,secretKey);
BaiduBCS baiduBCS = new BaiduBCS(credentials,host); // baiduBCS.setDefaultEncoding("GBK");
baiduBCS.setDefaultEncoding("UTF-8"); // Default UTF-8
try {
String object = "/net_File"; //上传到百度云存储上面的文件名称
putObjectByFile(baiduBCS,object);
} catch (BCSServiceException e) {
log.warn("Bcs return:" + e.getBcsErrorCode() + ","
+ e.getBcsErrorMessage() + ",RequestId="
+ e.getRequestId());
} catch (BCSClientException e) {
e.printStackTrace();
}
}
public static void inputstreamtofile(InputStream ins,File file)
throws IOException {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer,8192)) != -1) {
os.write(buffer,bytesRead);
}
os.close();
ins.close();
}
public static void putObjectByFile(BaiduBCS baiduBCS,String object)
throws IOException {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/jpeg");
InputStream in = null;
URL url = new URL(http://p2.qhimg.com/t014aca5713dd7b7474.jpg); //从网上解析图片
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();
Thumbnails.of(inStream).size(100,100).toFile("upload/test.jpg"); 生成缩略图片
File file = new File("upload/test.jpg"); //暂时保存本地
byte[] buffer_data = getBytes("upload/test.jpg"); //加载本地缩略图片
in = ByteToInputStream(buffer_data,in);
metadata.setContentLength(buffer_data.length);
metadata.setContentLength(buffer_data.length);
PutObjectRequest request = new PutObjectRequest(bucket,object,in,metadata);
request.setMetadata(metadata);
BaiduBCSResponse<ObjectMetadata> response = baiduBCS.putObject(request);
ObjectMetadata objectMetadata = response.getResult();
log.info("x-bs-request-id: " + response.getRequestId());
log.info(objectMetadata);
file.delete(); //删除本地图片
}
public static byte[] getBytes(String filePath) {
byte[] buffer = null;
try {
File file = new File(filePath); // 得到文件的byte流....
System.out.println(file.length());
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b,n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer;
}
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
public static InputStream ByteToInputStream(byte buffer[],InputStream in) {
in = new ByteArrayInputStream(buffer);
return in;
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
