加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

从网络爬取图片,生成缩略图,保存到百度云存储!

发布时间:2020-12-15 03:14:23 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 http://my.oschina.net/tdd/blog/365160 public class Sample { private static final Log log = LogFactory.getLog(Sample.class); // -------------

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

http://my.oschina.net/tdd/blog/365160
public 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;
 }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读