Android上传图片到七牛云
写在前边
- 现在的时间:2019-06-23
- 怎样获得一个七牛云的存储空间就不写了,重点是怎么上传图片.
准备工作-处理权限
网络权限
- 添加访问网络权限
<uses-permission android:name="android.permission.INTERNET"/>
- 设置允许发送http请求,否则android默认不允许发送http请求:在清单文件
application
标签上添加android:usesCleartextTraffic="true"
读取文件权限
- 添加读取系统文件权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- 因为是危险权限,还要作动态申请.
private void getPer() {int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);if (permission != PackageManager.PERMISSION_GRANTED){// 请求权限ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);} }
准备工作-获取七牛云相关的东西
获取AK与SK
获取要上传到的空间(bucket)
添加依赖
implementation 'com.qiniu:qiniu-android-sdk:7.3.15'
implementation 'com.qiniu:qiniu-java-sdk:7.2.+'
依赖主页:https://developer.qiniu.com/kodo/sdk/1236/android https://github.com/qiniu/java-sdk
上传图片
protected void uploadPic()
{//指定zone的具体区域//FixedZone.zone0 华东机房//FixedZone.zone1 华北机房//FixedZone.zone2 华南机房//FixedZone.zoneNa0 北美机房/*Configuration config = new Configuration.Builder().chunkSize(512 * 1024) // 分片上传时,每片的大小。 默认256K.putThreshhold(1024 * 1024) // 启用分片上传阀值。默认512K.connectTimeout(10) // 链接超时。默认10秒.useHttps(true) // 是否使用https 默认是false.responseTimeout(60) // 服务器响应超时。默认60秒.recorder(recorder) // recorder分片上传时,已上传片记录器。默认null.recorder(recorder, keyGen) // keyGen 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录.zone(FixedZone.zone0) // 设置区域,指定不同区域的上传域名、备用域名、备用IP。*/Configuration config = new Configuration.Builder().useHttps(true) // 是否使用https上传域名.zone(FixedZone.zone0) // 设置区域,指定不同区域的上传域名、备用域名、备用IP。.build();UploadManager uploadManager = new UploadManager(config); // UploadManager对象只需要创建一次重复使用String data = "/storage/emulated/0/DCIM/Camera/IMG_20190623_172115.jpg"; //要上传的文件String key = "test.jpg"; //在服务器的文件名/*** 生成token* create()方法的两个参数分别是 AK SK* uoloadToken()方法的参数是 要上传到的空间(bucket)*/String token = Auth.create("kzdlPdSfFXp_Jgj32wlk5ef4r_Y171smSEyzYpX1", "SQ7MwgAQbsT1Sp-RwFg5iqK3m8vUU4fhCgvuEkIb").uploadToken("liyanxing-pic-server");/*** 调用put方法上传* 第一个参数 data:可以是字符串,是要上传图片的路径* 可以是File对象,是要上传的文件* 可以是byte[]数组,要是上传的数据* 第二个参数 key:字符串,是图片在服务器上的名称,要具有唯一性,可以用UUID* 第三个参数 token:根据开发者的 AK和SK 生成的token,这个token 应该在后端提供一个接口,然后android代码中发一个get请求获得这个tocken,但这里为了演示,直接写在本地了.* 第四个参数:UpCompletionHandler的实例,有个回调方法* 第五个参数:可先参数*/uploadManager.put(data, key, token,new UpCompletionHandler(){/*** 回调方法* @param key 开发者设置的 key 也就是文件名* @param info 日志,包含上传的ip等* @param res 包括一个hash值和key*/@Overridepublic void complete(String key, ResponseInfo info, JSONObject res){if(info.isOK()){Log.i("上传结果:", "Upload Success");}else{Log.i("上传结果:", "Upload Fail");//如果失败,这里可以把info信息上报自己的服务器,便于后面分析上传错误原因}Log.i("key:", key + "\ninfo:" + info + "\nres:" + res);}},null);
}
Android上传图片到七牛云相关推荐
- android七牛云存储,Android上传图片到七牛云
protected void uploadPic() { //指定zone的具体区域 //FixedZone.zone0 华东机房 //FixedZone.zone1 华北机房 //FixedZone ...
- 前端上传图片到七牛云
前端如何上传图片到七牛云 流程: 1.七牛云后台的对象存储功能 2.node.js后台生成七牛云的token 3.前端利用element UI/ice 的upload组件 4.文件名和token作为参 ...
- uni-app 上传图片到七牛云
uni-app 上传图片到七牛云 我的流程是:在上传图片到七牛之前,先调后端提供的接口获取token.key等,然后通过uni.uploadFile把token.key传给七牛: token:从后端获 ...
- React中:富文本编辑器(react-quill),自定义上传图片到七牛云
1.组件封装 import React, { useState, useEffect, useRef } from 'react'; import ReactQuill from 'react-qui ...
- 七牛云 上传图片到七牛云并返回图片URL
七牛云 上传图片到七牛云并返回图片URL 鸣谢'追逐盛夏流年':https://blog.csdn.net/j1231230/article/details/80061834 在开发项目的时候,经常会 ...
- 实现Java+Vue上传图片到七牛云和从七牛云删除图片
环境准备 开发环境 后端: JDK1.8, SpringBoot2.2.2.RELEASE, Maven3.6.3 前端: vue-element-admin4.4.0 相关链接 七牛云JavaSDK ...
- 小程序上传图片到七牛云
小程序上传图片到七牛云 一.创建七牛云账号,获取ak.sk,创建对象存储空间名称 二.服务端接口获取七牛token值,个人使用的php编写的 ...
- 前端如何上传图片到七牛云
From: https://www.jianshu.com/p/7520e0bee777 前端如何上传图片到七牛云 流程: 生成token => token和图片作为new FromData() ...
- html5七牛图片上传js,前端如何上传图片至七牛云
上传文件是我们在前端开发中经常遇到的一个问题.最近在做某项目管理后台的时候,需要将轮播图上传至七牛云.以前在Vue里面做过类似的功能,但是在Angular中使用同样的方法发现行不通. 此篇文章主要介绍 ...
最新文章
- 为什么阿里巴巴强制要求使用包装类型定义属性?
- 2020年国际学术会议参考列表
- Hinton新论文:如何在神经网络中表示“部分-整体层次结构”?
- 数字孪生:连结现实与数字世界
- 单网卡Squid AS4 U5 设置
- 爬虫学习--豆瓣top250
- div后来居上 html,【CSS】误解:后来居上??有时这是错的
- 二级MYSQL的语法整理_MySQL语法整理
- CLion + OpenCV 开发
- vue项目中的回车登录
- android for循环比大小,如何让for()循环花费更少的时间(android)?
- Python正则提取
- AWS免费套餐避坑攻略:查看账户下所有region的资源,及时关停不需要的服务
- C#连接数据库自动生成实体类
- js清除浏览器缓存的几种方法
- python Excel xlwt 富文本 同一单元格内设置不同样式
- 走近“so,neither”开头的倒装句
- 百度地图显示多点连线+数字标注
- Chrome浏览器 改成黑色主题(含控制台)
- 遥感影像处理书籍推荐
热门文章
- Oracle 10g For Windows 10.1.0和 Oracle 10g For Linux 10.1.0.3下载地址
- NavigationController
- 08-微服务版单点登陆系统(SSO)实践
- 用token实现单点登录
- 第七天 01.ssh服务 使用堡塔以及xshell等连接linux
- 通过云服务器对内网穿透实现外网访问群晖NAS
- 图像分割:阈值获取方法总结
- c语言sqar是double,C语言怎么编写正弦波
- 特殊的空格 - ASCII(160)
- mac浏览器没有网络,通讯软件(QQ、微信、飞书等)正常