七牛云网络存储文件上传(代码片段)

baiqiantao baiqiantao     2022-12-29     792

关键词:

设置自定义域名:
如果你的域名没有备案,哪种云存储都用不了,就不要尝试了。七牛云存储添加自定义域名和域名解析图文教程:http://boke112.com/3870.html 

上传文件到七牛

配置依赖:
implementation ‘com.squareup.okhttp3:okhttp:3.8.0‘
implementation ‘com.squareup.okio:okio:1.13.0‘
implementation ‘com.qiniu:qiniu-android-sdk:7.3.12‘
1
implementation ‘com.squareup.okhttp3:okhttp:3.8.0‘
2
implementation ‘com.squareup.okio:okio:1.13.0‘
3
implementation ‘com.qiniu:qiniu-android-sdk:7.3.12‘
权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
1
<uses-permission android:name="android.permission.INTERNET"/>
2
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
工具类:
public class QiNiuUtils 
	private static final String ACCESSKEY = "m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg";
	private static final String SECRETKEY = "ZMFhkutPPZj86BbjV9O7RtDEs0XOQNlkPUYc-kIV";
	private static final String BUCKET_NAME = "temp";//存储空间的名字
	private static final String MAC_NAME = "HmacSHA1";
	private static final String ENCODING = "UTF-8";
	
	public static void upLoad(File file, String key,Configuration config,UpCompletionHandler handler) 
		String token = QiNiuUtils.getToken();
		new UploadManager(config).put(file, key, token, handler, null);
	
	
    //获取Token
	private static String getToken() 
		JSONObject json = new JSONObject();
		long deadline = System.currentTimeMillis() / 1000 + 3600 * 12;
		try 
			json.put("deadline", deadline);
			json.put("scope", BUCKET_NAME);
		 catch (JSONException e) 
			e.printStackTrace();
		
		
		String encodedPutPolicy = UrlSafeBase64.encodeToString(json.toString());
		
		byte[] sign = null;
		try 
			sign = hmacsha1encrypt(encodedPutPolicy, SECRETKEY);
		 catch (Exception e) 
			e.printStackTrace();
		
		
		String encodedSign = UrlSafeBase64.encodeToString(sign);
		return ACCESSKEY + ‘:‘ + encodedSign + ‘:‘ + encodedPutPolicy;
	
	
	private static byte[] hmacsha1encrypt(String encryptText, String encryptKey) throws Exception 
		byte[] data = encryptKey.getBytes(ENCODING);
		SecretKeySpec secretKey = new SecretKeySpec(data, MAC_NAME);
		Mac mac = Mac.getInstance(MAC_NAME);
		mac.init(secretKey);
		byte[] text = encryptText.getBytes(ENCODING);
		return mac.doFinal(text);
	
x
 
1
public class QiNiuUtils 
2
    private static final String ACCESSKEY = "m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg";
3
    private static final String SECRETKEY = "ZMFhkutPPZj86BbjV9O7RtDEs0XOQNlkPUYc-kIV";
4
    private static final String BUCKET_NAME = "temp";//存储空间的名字
5
    private static final String MAC_NAME = "HmacSHA1";
6
    private static final String ENCODING = "UTF-8";
7
    
8
    public static void upLoad(File file, String key,Configuration config,UpCompletionHandler handler) 
9
        String token = QiNiuUtils.getToken();
10
        new UploadManager(config).put(file, key, token, handler, null);
11
    
12
    
13
    //获取Token
14
    private static String getToken() 
15
        JSONObject json = new JSONObject();
16
        long deadline = System.currentTimeMillis() / 1000 + 3600 * 12;
17
        try 
18
            json.put("deadline", deadline);
19
            json.put("scope", BUCKET_NAME);
20
         catch (JSONException e) 
21
            e.printStackTrace();
22
        
23
        
24
        String encodedPutPolicy = UrlSafeBase64.encodeToString(json.toString());
25
        
26
        byte[] sign = null;
27
        try 
28
            sign = hmacsha1encrypt(encodedPutPolicy, SECRETKEY);
29
         catch (Exception e) 
30
            e.printStackTrace();
31
        
32
        
33
        String encodedSign = UrlSafeBase64.encodeToString(sign);
34
        return ACCESSKEY + ‘:‘ + encodedSign + ‘:‘ + encodedPutPolicy;
35
    
36
    
37
    private static byte[] hmacsha1encrypt(String encryptText, String encryptKey) throws Exception 
38
        byte[] data = encryptKey.getBytes(ENCODING);
39
        SecretKeySpec secretKey = new SecretKeySpec(data, MAC_NAME);
40
        Mac mac = Mac.getInstance(MAC_NAME);
41
        mac.init(secretKey);
42
        byte[] text = encryptText.getBytes(ENCODING);
43
        return mac.doFinal(text);
44
    
45
上传案例:
Configuration config = new Configuration.Builder().build();
String fileName = file.getName();
QiNiuUtils.upLoad(file, fileName, config, (key, info, response) -> 
   //用户自定义的内容上传完成后处理动作必须实现的方法,建议用户自己处理异常。若未处理,抛出的异常被直接丢弃。
   Log.i("bqt", "文件上传保存名称:" + key);
   Log.i("bqt", "上传完成返回日志信息:
" + new Gson().toJson(info));
   Log.i("bqt", "上传完成的回复内容:
" + response);
);
x
 
1
Configuration config = new Configuration.Builder().build();
2
String fileName = file.getName();
3
QiNiuUtils.upLoad(file, fileName, config, (key, info, response) -> 
4
   //用户自定义的内容上传完成后处理动作必须实现的方法,建议用户自己处理异常。若未处理,抛出的异常被直接丢弃。
5
   Log.i("bqt", "文件上传保存名称:" + key);
6
   Log.i("bqt", "上传完成返回日志信息:
" + new Gson().toJson(info));
7
   Log.i("bqt", "上传完成的回复内容:
" + response);
8
);
打印日志
文件上传保存名称:sms_2018.09.08-16_02_09.txt
上传完成返回日志信息

    "duration": 923,
    "host": "upload.qiniup.com",
    "id": "1536393734861932",
    "ip": "111.177.9.136",
    "path": "/",
    "port": 80,
    "reqId": "BwMAAOKFEJb2XVIV",
    "response": 
        "nameValuePairs": 
            "hash": "FhX-pWNc1ThcCCVIryzKZQyRQhsq",
            "key": "sms_2018.09.08-16_02_09.txt"
        
    ,
    "sent": 422819,
    "statusCode": 200,
    "timeStamp": 1536393736,
    "totalSize": 422098,
    "upToken": 
        "accessKey": "m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg",
        "returnUrl": "",
        "token": "..."
    ,
    "xlog": "...",
    "xvia": "vdn-hbxy-tel-1-1"

上传完成的回复内容

    "hash": "FhX-pWNc1ThcCCVIryzKZQyRQhsq",
    "key": "sms_2018.09.08-16_02_09.txt"
1
文件上传保存名称:sms_2018.09.08-16_02_09.txt
2
上传完成返回日志信息
3
4
    "duration": 923,
5
    "host": "upload.qiniup.com",
6
    "id": "1536393734861932",
7
    "ip": "111.177.9.136",
8
    "path": "/",
9
    "port": 80,
10
    "reqId": "BwMAAOKFEJb2XVIV",
11
    "response": 
12
        "nameValuePairs": 
13
            "hash": "FhX-pWNc1ThcCCVIryzKZQyRQhsq",
14
            "key": "sms_2018.09.08-16_02_09.txt"
15
        
16
    ,
17
    "sent": 422819,
18
    "statusCode": 200,
19
    "timeStamp": 1536393736,
20
    "totalSize": 422098,
21
    "upToken": 
22
        "accessKey": "m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg",
23
        "returnUrl": "",
24
        "token": "..."
25
    ,
26
    "xlog": "...",
27
    "xvia": "vdn-hbxy-tel-1-1"
28
29
上传完成的回复内容
30
31
    "hash": "FhX-pWNc1ThcCCVIryzKZQyRQhsq",
32
    "key": "sms_2018.09.08-16_02_09.txt"
33

MPic-图床神器

http://mpic.lzhaofu.cn/
一款支持多种上传方式且自动生成MarkDown链接的图床工具
sago
m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg
ZMFhkutPPZj86BbjV9O7RtDEs0XOQNlkPUYc-kIV
oxns24xcm.bkt.clouddn.com
如:http://oxns24xcm.bkt.clouddn.com/bqt.jpg
x
1
sago
2
m1-qhAIzfk6_rNdWfvf5ngaybQva5CmzHl9-pccg
3
ZMFhkutPPZj86BbjV9O7RtDEs0XOQNlkPUYc-kIV
4
oxns24xcm.bkt.clouddn.com
5
如:http://oxns24xcm.bkt.clouddn.com/bqt.jpg
技术分享图片
2018-9-8




如何用建木ci往七牛云上传文件(代码片段)

#gitee仓库路径#七牛云空间管理中创建的空间名字#七牛云密钥管理中的AK#七牛云密钥管理中的SK#存储区域,不设置时,自动识别,华东:z0;华北:z1;华南:z2;北美:na0;东南亚:as0#上传后在七牛云生成的uri#要上传的文件目... 查看详情

flask-web——对象存储——图片上传存储传输等(代码片段)

1.七牛云存储需求在项目中,如用户头像、文章图片等数据需要使用文件存储系统来保存方案自己搭建文件系统服务选用第三方对象存储服务我们在项目中使用七牛云对象存储服务http://www.qiniu.com。2.使用注册新建存储空间使... 查看详情

云网络性能测试流程(代码片段)

有几个云上的小伙伴想测测VPC网络性能,于是写了一些dpdk代码在阿里云上做了一个实验,也适用于其它云.安装相关的库使用root登录,更新一下源#备份原有的配置文件mkdir/etc/yum.repos.d/bakmv/etc/yum.repos.d/*.repo/etc/yum.repos.d/bak/#使用阿... 查看详情

java实现七牛云文件或图片上传下载(代码片段)

文章目录一、准备工作1.1.为什么选择七牛云?1.2.七牛云注册二、java操作七牛云对象存储下载2.1.pom.xml引入依赖2.2.上传下载具体代码三、具体业务例子(七牛云做图片服务器--SpringBoot)3.1.pom.xml(此处继承上面的依赖多引入一个)3.2.创... 查看详情

七牛云文件上传助手(代码片段)

qiniuyun_upload_tools最近写博客发现经常要上传图片到七牛云上去,每次打开网页登录然后上传感觉很慢,windows也没有一个好的上传工具,于是写了这样的一个工具。效果使用方法下载程序包点击下载解压后直接在config.json文件里面... 查看详情

php表单上传图片到七牛云存储并返回地址……求具体流程~有代码更好

...篇记录,如下原文地址:http://cuiqingcai.com/?p=157网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了。研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向。首先本篇文章实现的功能如下:1.利... 查看详情

php上传文件与图片到七牛的实例详解(代码片段)

上传文件到七牛最简单的方式就是使用七牛官方最新的SDK用composer安装PHPSDKcomposer require qiniu/php-sdk 上传文件到七牛use QiniuAuth;use QiniuStorageUploadManager;$cfg = [ ‘access‘ =>&nb 查看详情

python实战项目-10文件存储/支付宝支付/支付成功回调接口(代码片段)

...的服务器 -第三方: -阿里云:对象存储oss-腾讯对象存储-七牛云存储 -自己搭建: fastdfs:文件对象存储https://zhuanlan.zhihu.com/p/372286804minio:我们可以使用对应的sdk包将文件传输上去在此项目中我们选用七牛云来存储视频文件资源... 查看详情

go实战|电商平台图片上传到七牛云(代码片段)

...nfig3.upload完整代码这一章节中我们介绍如何把图片上传到七牛云,并且返回对应图片的url。因为后续我们的创建的商品,更换头像等等都是把我们的图片上传七牛云存储,再返回对应的url的。1.获取配置信息打开七牛... 查看详情

带你熟悉云网络的“电话簿”:dns(代码片段)

...才是你的灵魂。本文分享自华为云社区《《跟唐老师学习云网络》-DNS电话簿》,作者:tsjsdbd。由于TCP/IP网络协议在通信的时候,双方都是用IP地址的。所以整个报文来回过程中,并没有DNS什么事情的。只要双方IP... 查看详情

让人懵懂的云网络,里面原来是这些(代码片段)

...建立起最基本的概念,所以无意说太多。让人懵懂的云网络一、云网络里都有啥我们先从最能直观感受的VPC来说,然后说说里面的子网和其它。1、VPC:用户拥有的网络VPC(VirtualPrivateCloud)的正规叫法是“虚拟... 查看详情

使用宝塔面板如何自动备份数据库和网站代码(代码片段)

...储、FTP存储空间、阿里云OSS、谷歌云网盘、谷歌云存储、七牛云存储、腾讯云COS这么多的存储工具,多种选择,还不够你放备份文件吗?我使用的是七牛云存储,七牛云提供了永久免费的10G存储空间,我们可以创建私有的存储空... 查看详情

laravel上传到七牛图片插件(代码片段)

1.首先引入两个插件2.在https://developer.qiniu.com/kodo/sdk/1241/php找到安装命令在终端运行composer requireqiniu/php-sdk3.自定义一个全局辅助函数,首先在项目的Http文件夹中新建Helpers文件夹,里面新建一个文件,名字就叫qiniu.php,注意引... 查看详情

七牛存储图片代码

1//上传到七牛2//单个文件3//formname:表单名字;pre:图片Url中显示的图片名字(也就是七牛中的key)4publicfunctionupImage($formname,$pre)5{6if(empty($_FILES[$formname][‘size‘])){7returnarray(8‘qiniu_name‘=>‘000‘,9‘file_name‘=>‘0000‘ 查看详情

canvas保存图片到七牛云(代码片段)

最近在做一个项目,需要在前端对图片切片并上传到七牛云技术要点canvas.toBlob(blob=>);//可将canvas保存成二进制文件formData.append(‘file‘,blob,‘filename‘);//将二进制文件添加到FormData中ajax.send(formData);//上传数据到后端处理代码实... 查看详情

django+七牛上传+查看+下载文件相关函数,新整理未完全测试(代码片段)

MclassFile(models.Model):#文档模型name=models.CharField(max_length=255)staff=models.ForeignKey('Staff')qiniu_name=models.CharField(max_length=255)remark=models.CharField(max_length=255,default= 查看详情

微信小程序上传图片及上传到上传到七牛云(代码片段)

微信小程序图片上传功能包含:上传到七牛云、删除图片、查看图片   1.创建子组件tpupload//wxml文件<viewstyle="padding:10px;"><!--图片上传--><viewclass="weui-uploader"><viewclass="img-vweui-uploader__bd">< 查看详情

一个命令完成[打包+同步七牛cdn+上传服务器](代码片段)

...个命令完成[打包+同步cdn+上传服务器]说明由于我们用的七牛云存储,所以cdn也是走的七牛,所以并不适用于其他的cdn,但是思路可以借鉴打包打包目前我这边用的是webpack,网上已经有很多文章了,这里就不作过多阐述了,只是... 查看详情