首页 > 其他分享 >七牛云存储____图片转Base64串上传

七牛云存储____图片转Base64串上传

时间:2023-09-13 18:02:58浏览次数:31  
标签:七牛云 String Base64 ____ static new import null public


package com.scdn.qnscdn;

/**
 * 七牛常理配置
 * 
 * @author God 待整理好配到config文件里
 * ACCESSKEY 这是我个人申请的一个测试的号 everyone can useing it
 * SECRETKEY 
 */
public class QnConstant {
	// 设置好账号的ACCESS_KEY和SECRET_KEY
	public static final String ACCESSKEY = "1o90vmY9OmRcueIeIeFBID6q2uy8peFiFBxpnM78"; 
	// 账号里面可以找到
	public static final String SECRETKEY = "uapfWvebSlf6q8SebsJMrhzk4rudBciHQFIOnwj_";
	// 要上传的空间 对应要上传到七牛上 你的那个路径(自己建文件夹 注意设置公开)
	public static final String BUCKET_TEST = "test"; 
}


package com.scdn.qnscdn;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.UUID;

import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import com.qiniu.storage.BucketManager;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

/**
 * @author Administrator 七牛图片操作工具类
 */
public class QnUtil {
	// 授权验证
	public static Auth auth = Auth.create(QnConstant.ACCESSKEY, QnConstant.SECRETKEY);
	// 定义变量
	public static UploadManager uploadManager = null;
	public static BucketManager bucketManager = null;
	public static String accesskey = null;
	public static String secretkey = null;
	public static String bucket_test = null;
	// 令牌验证
	public static String token = null;
	// 初始化配置
	static {
		accesskey = QnConstant.ACCESSKEY;
		secretkey = QnConstant.SECRETKEY;
		bucket_test = QnConstant.BUCKET_TEST;
		uploadManager = new UploadManager();
		bucketManager = new BucketManager(auth);
	}

	/**
	 * 根据空间名获取token 获取test空间的token
	 * 
	 * @param bucket
	 * @return
	 */
	public static String getToken(String bucket) {
		return token = auth.uploadToken(bucket);
	}
	/**
	 * 七牛SDK_图片转base64串上传
	 * @param file
	 * @param key
	 * @throws Exception
	 */
	public static void putb64(String file,String key) throws Exception {
		FileInputStream fis = null;
		try {
			int l = (int) (new File(file).length());
			byte[] src = new byte[l];
			fis = new FileInputStream(new File(file));
			fis.read(src);
			String file64 = Base64.encodeBase64String(src);
			String url = "http://up.qiniu.com/putb64/-1/key/"+Base64.encodeBase64String((key+".jpg").getBytes());
			HttpPost post = new HttpPost(url);
			post.addHeader("Content-Type", "application/octet-stream");
			post.addHeader("Authorization", "UpToken " + QnUtil.getToken(bucket_test));
			post.setEntity(new StringEntity(file64));
			CloseableHttpClient httpclient = HttpClients.createDefault();
			HttpResponse res = httpclient.execute(post);
			String responseBody = EntityUtils.toString(res.getEntity(), "UTF-8");
			System.out.println(responseBody);
			if (fis != null) {
				fis.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		String file="D:\\abc.jpg";
		try {
			putb64(file, UUID.randomUUID().toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

//涉及的jar包

标签:七牛云,String,Base64,____,static,new,import,null,public
From: https://blog.51cto.com/ratelcloud/7462905

相关文章

  • 【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)
    问题描述使用"bin\win64\activemq.bat"启动apache-activemq-5.18.2出错。jvm1|ERROR|FailedtostartApacheActiveMQ(localhost,ID:)jvm1|java.io.IOException:TransportConnectorcouldnotberegisteredinJMX:java.io.IOException:Failedtobin......
  • 通过 DevOps、CI/CD 和容器增强您的软件开发之旅...
    软件行业已经在DevOps、CI/CD和容器中找到了针对开发导向问题的有效解决方案。尽管并不强制要求将这三者一起使用,但它们通常是相互补充和依赖的。DevOps促进开发和IT团队之间的协作,而CI/CD简化软件交付流程以更快地获得结果。容器化将应用程序与其依赖项结合起来,以建立一致......
  • 2023国家网络安全宣传周|邮件安全意识培训-钓鱼篇
    干货满满建议收藏反复阅读钓鱼邮件钓鱼邮件是指黑客伪装成同事、合作伙伴、朋友、家人等用户信任的人,通过发送电子邮件的方式,诱使用户回复邮件、点击嵌入邮件正文的恶意链接或者打开邮件附件以植入木马或间谍程序,进而窃取用户敏感数据、个人银行账户和密码等信息,或者在设备上执......
  • TCP编程
    网络相关概念网络通信概念:两台设备之间通过网络实现数据传输。网络通信:将数据通过网络从一台设备传输到另一台设备中。java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信。网络概念:两台或多台设备通过一定物理设备连接起来构成了网络。根据网络的覆盖范围不同,对网络进行......
  • 17-浮点数-自动转换-强制转换-增强赋值运算符
         ......
  • k8s笔记14
    摘要:多播路由守护程序;autogen;SMCRoute;pimd;mrouted;mcjointroglobit/pim6sd:PIMforIPv6sparsemodedaemon(github.com)Tip:为了安1、pim6sd自动将自身配置为在所有支持多播的接口interfaces(IFF_MULTICASTflag)上转发 forward,即设置了IFF_MULTICAST标志的接口(不包括excluding......
  • 线程池------小记
    1、线程池的产生背景1、线程是一种系统资源,每创建一个新的线程都会占用一定的内存。如果是高并发的情况下,短时间生成了很多任务,如果为每个任务都创建一个新的线程,对内存的占用是相当大的,甚至有可能出现内存内存溢出。2、同时线程也不是创建的越多越好,在cpu核数的限制下,当需要大量......
  • 闪电WhatsApp云控
    WhatsApp作为全球使用率最高的应用程序之一,跟我们国内的微信、QQ类似,都是用来与用户进行交谈交友的平台,在全球180多个国家或地区深受欢迎,月活跃用户量是非常庞大的。做海外营销,你肯定是离不开WhatsApp的。不知道大家有没有听过WhatsApp云控?WhatsApp云控是第三方公司开......
  • modubs的TCP数据协议
    参考:C#实现MODBUSTCP通信第二章(程序内实现)-『编程语言区』-吾爱破解-LCG-LSG|安卓破解|病毒分析|www.52pojie.cn只要了解这个modubs的数据格式常用的命令功能码(16进制)功能说明0x01读取输出线圈10x02......
  • 带你了解一下谷歌Search Console
    SearchConsole 是Google推出的一款工具,可以帮助任何拥有网站的用户了解其网站在Google搜索中的表现,以及如何改进网站在Google搜索上的呈现效果,使网站获得更相关的流量。SearchConsole提供了与 Google如何抓取网站、将网站编入索引和呈现网站相关的信息。这有助于网站所......