- 浏览: 80671 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (110)
- 异常信息 (3)
- JVM (3)
- Maven (2)
- 安全加密 (4)
- server服务类 (8)
- 前端技术类 (7)
- 设计模式 (2)
- memcached (0)
- mongodb (3)
- pinyin4j (1)
- struts2 (1)
- 杂烩 (26)
- 爬虫 (3)
- Java反射 (2)
- RMI (1)
- Velocity (2)
- node.js (0)
- GIT (4)
- ffmpeg与java (1)
- Spring Boot (0)
- Linux (3)
- Spring (4)
- 七牛云服务 (1)
- shell (2)
- python (0)
- JNI实现Java和其他语言的通信 (0)
- nutz (1)
- zookeeper (1)
- dubbo (0)
- Druid数据库连接池 (1)
- redis (14)
- hessian (0)
- RabbitMQ (0)
- ActiveMQ (1)
- JFinal极速 web 开发框架 (0)
- solr (0)
- jersey【RESTful Web Services in Java】 (0)
- GO学习 (6)
- nginx (1)
- TapeStry (2)
- Disruptor,并发 (1)
- Mybatis (1)
最新评论
-
qii404:
推荐另一个Redis可视化客户端,开源并且跨平台支持,性能可以 ...
redis可视化工具RedisClient使用
七牛云官网http://www.qiniu.com/pricing
javaSDK使用eg:
import com.qiniu.util.Auth;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//简单上传,使用默认策略,只需要设置上传的空间名就可以了
public String getUpToken(){
return auth.uploadToken(bucketname);
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, key, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
覆盖上传
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String filePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
// 覆盖上传
public String getUpToken(){
//<bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。
//如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1。
//第三个参数是token的过期时间
return auth.uploadToken(bucketname, key, 3600, new StringMap().put("insertOnly", 1 ));
}
public void upload() throws IOException{
try {
//调用put方法上传,这里指定的key和上传策略中的key要一致
Response res = uploadManager.put(filePath, key, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
断点上传
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.Recorder;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.persistent.FileRecorder;
import com.qiniu.util.Auth;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String filePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
// 覆盖上传
public String getUpToken(){
return auth.uploadToken(bucketname);
}
public void upload() throws IOException{
//设置断点记录文件保存在指定文件夹或的File对象
String recordPath = "/.../...";
//实例化recorder对象
Recorder recorder = new FileRecorder(recordPath);
//实例化上传对象,并且传入一个recorder对象
UploadManager uploadManager = new UploadManager(recorder);
try {
//调用put方法上传
Response res = uploadManager.put("path/file", "key", getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
上传&回调
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
public String getUpToken(){
return auth.uploadToken(bucketname,null,3600,new StringMap()
.put("callbackUrl","http://your.domain.com/callback")
.put("callbackBody", "filename=$(fname)&filesize=$(fsize)"));
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, null, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
上传&预转持续化
以视频转码为例:
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//设置转码操作参数
String fops = "avthumb/mp4/s/640x360/vb/1.25m";
//设置转码的队列
String pipeline = "yourpipelinename";
//可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:自定义文件key");
String pfops = fops + "|saveas/"+ urlbase64;
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//上传策略中设置persistentOps字段和persistentPipeline字段
public String getUpToken(){
return auth.uploadToken(bucketname,null,3600,new StringMap()
.putNotEmpty("persistentOps", pfops)
.putNotEmpty("persistentPipeline", pipeline), true);
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, null, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
队列pipeline 请参阅创建私有队列;转码操作 具体参数请参阅音视频转码;saveas 请参阅处理结果另存。
Tips:上面的 Demo 只是针对视频转码功能,如果您需要使用比如音视频切片、视频截图、视频拼接等功能只需要修改上面 fops 后面的参数即可,如:$fops = vframe/jpg/offset/1/w/480/h/360/rotate/90 就表示视频截图了。
可以看到上传成功后的行为主要是由上传凭证中的 上传策略 来指定。其中 上传策略 可以指定的行为不止这些,具体请参阅 上传策略。
文件下载
生成下载链接:
import com.qiniu.util.Auth;
public class DownloadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//构造私有空间的需要生成的下载的链接
String URL = "http://bucketdomain/key";
public void download(){
//调用privateDownloadUrl方法生成下载链接,第二个参数可以设置Token的过期时间
String downloadRUL = auth.privateDownloadUrl(URL,3600);
System.out.println(downloadRUL);
}
public static void main(String args[]){
new DownloadDemo().download();
}
}
空间资源管理
获取文件信息
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
try {
//调用stat()方法获取文件的信息
FileInfo info = bucketManager.stat(bucket, key);
System.out.println(info.hash);
System.out.println(info.key);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
移动单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//将文件从文件key移动到文件key2, 可以在不同bucket移动,同空间移动相当于重命名
String key2 = "yourjavakey";
try {
//调用move方法移动文件
bucketManager.move(bucket, key, bucket, key2);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
复制单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//将文件从文件key 复制到文件key2。 可以在不同bucket复制
String key2 = "yourjavakey";
try {
//调用copy方法移动文件
bucketManager.copy(bucket, key, bucket, key2);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
删除单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
try {
//调用delete方法移动文件
bucketManager.delete(bucket, key);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
触发持久化操作
以视频转码为例:
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.processing.OperationManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
public class OperateDemo {
public static void main(String[] args) throws QiniuException {
//设置账号的AK,SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//新建一个OperationManager对象
OperationManager operater = new OperationManager(auth);
//设置要转码的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//设置转码操作参数
String fops = "avthumb/mp4/s/640x360/vb/1.25m";
//设置转码的队列
String pipeline = "yourpipelinename";
//可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:自定义文件key");
String pfops = fops + "|saveas/"+urlbase64;
//设置pipeline参数
StringMap params = new StringMap().putWhen("force", 1, true).putNotEmpty("pipeline", pipeline);
try {
String persistid = operater.pfop(bucket, key, pfops, params);
//打印返回的persistid
System.out.println(persistid);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
// 请求失败时简单状态信息
System.out.println(r.toString());
try {
// 响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
}
Tips:上面的Demo只是针对视频转码功能,如果您需要使用比如音视频切片、视频截图、视频拼接等功能只需要修改上面 fops 后面的参数即可,如:$fops = vframe/jpg/offset/1/w/480/h/360/rotate/90 就表示视频截图了。
通过上面的代码我们就可以触发将存储在空间中的视频从 mp4 格式转换成 m3u8 格式,并设置分辨率和视频码率。 但这个只是将转码这个耗时的操作提交到队列中,要想知道转码操作现在的状态, 需要根据返回的 persitentId 进行查询。如果您不方便持续轮询每个异步处理的进度和状态,七牛可以异步处理完成后通知您们的业务服务器。
javaSDK使用eg:
import com.qiniu.util.Auth;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//简单上传,使用默认策略,只需要设置上传的空间名就可以了
public String getUpToken(){
return auth.uploadToken(bucketname);
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, key, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
覆盖上传
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String filePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
// 覆盖上传
public String getUpToken(){
//<bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。
//如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1。
//第三个参数是token的过期时间
return auth.uploadToken(bucketname, key, 3600, new StringMap().put("insertOnly", 1 ));
}
public void upload() throws IOException{
try {
//调用put方法上传,这里指定的key和上传策略中的key要一致
Response res = uploadManager.put(filePath, key, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
断点上传
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.Recorder;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.persistent.FileRecorder;
import com.qiniu.util.Auth;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String filePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
// 覆盖上传
public String getUpToken(){
return auth.uploadToken(bucketname);
}
public void upload() throws IOException{
//设置断点记录文件保存在指定文件夹或的File对象
String recordPath = "/.../...";
//实例化recorder对象
Recorder recorder = new FileRecorder(recordPath);
//实例化上传对象,并且传入一个recorder对象
UploadManager uploadManager = new UploadManager(recorder);
try {
//调用put方法上传
Response res = uploadManager.put("path/file", "key", getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
上传&回调
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
public String getUpToken(){
return auth.uploadToken(bucketname,null,3600,new StringMap()
.put("callbackUrl","http://your.domain.com/callback")
.put("callbackBody", "filename=$(fname)&filesize=$(fsize)"));
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, null, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
上传&预转持续化
以视频转码为例:
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
public class UploadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//要上传的空间
String bucketname = "Bucket_Name";
//上传到七牛后保存的文件名
String key = "my-java.png";
//上传文件的路径
String FilePath = "/.../...";
//设置转码操作参数
String fops = "avthumb/mp4/s/640x360/vb/1.25m";
//设置转码的队列
String pipeline = "yourpipelinename";
//可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:自定义文件key");
String pfops = fops + "|saveas/"+ urlbase64;
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//创建上传对象
UploadManager uploadManager = new UploadManager();
//上传策略中设置persistentOps字段和persistentPipeline字段
public String getUpToken(){
return auth.uploadToken(bucketname,null,3600,new StringMap()
.putNotEmpty("persistentOps", pfops)
.putNotEmpty("persistentPipeline", pipeline), true);
}
public void upload() throws IOException{
try {
//调用put方法上传
Response res = uploadManager.put(FilePath, null, getUpToken());
//打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
//响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
public static void main(String args[]) throws IOException{
new UploadDemo().upload();
}
}
队列pipeline 请参阅创建私有队列;转码操作 具体参数请参阅音视频转码;saveas 请参阅处理结果另存。
Tips:上面的 Demo 只是针对视频转码功能,如果您需要使用比如音视频切片、视频截图、视频拼接等功能只需要修改上面 fops 后面的参数即可,如:$fops = vframe/jpg/offset/1/w/480/h/360/rotate/90 就表示视频截图了。
可以看到上传成功后的行为主要是由上传凭证中的 上传策略 来指定。其中 上传策略 可以指定的行为不止这些,具体请参阅 上传策略。
文件下载
生成下载链接:
import com.qiniu.util.Auth;
public class DownloadDemo {
//设置好账号的ACCESS_KEY和SECRET_KEY
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
//密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//构造私有空间的需要生成的下载的链接
String URL = "http://bucketdomain/key";
public void download(){
//调用privateDownloadUrl方法生成下载链接,第二个参数可以设置Token的过期时间
String downloadRUL = auth.privateDownloadUrl(URL,3600);
System.out.println(downloadRUL);
}
public static void main(String args[]){
new DownloadDemo().download();
}
}
空间资源管理
获取文件信息
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
try {
//调用stat()方法获取文件的信息
FileInfo info = bucketManager.stat(bucket, key);
System.out.println(info.hash);
System.out.println(info.key);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
移动单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//将文件从文件key移动到文件key2, 可以在不同bucket移动,同空间移动相当于重命名
String key2 = "yourjavakey";
try {
//调用move方法移动文件
bucketManager.move(bucket, key, bucket, key2);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
复制单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//将文件从文件key 复制到文件key2。 可以在不同bucket复制
String key2 = "yourjavakey";
try {
//调用copy方法移动文件
bucketManager.copy(bucket, key, bucket, key2);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
删除单个文件
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
public class BucketManagerDemo {
public static void main(String args[]){
//设置需要操作的账号的AK和SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//要测试的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
try {
//调用delete方法移动文件
bucketManager.delete(bucket, key);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}
触发持久化操作
以视频转码为例:
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.processing.OperationManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
public class OperateDemo {
public static void main(String[] args) throws QiniuException {
//设置账号的AK,SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//新建一个OperationManager对象
OperationManager operater = new OperationManager(auth);
//设置要转码的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//设置转码操作参数
String fops = "avthumb/mp4/s/640x360/vb/1.25m";
//设置转码的队列
String pipeline = "yourpipelinename";
//可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:自定义文件key");
String pfops = fops + "|saveas/"+urlbase64;
//设置pipeline参数
StringMap params = new StringMap().putWhen("force", 1, true).putNotEmpty("pipeline", pipeline);
try {
String persistid = operater.pfop(bucket, key, pfops, params);
//打印返回的persistid
System.out.println(persistid);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
// 请求失败时简单状态信息
System.out.println(r.toString());
try {
// 响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
}
Tips:上面的Demo只是针对视频转码功能,如果您需要使用比如音视频切片、视频截图、视频拼接等功能只需要修改上面 fops 后面的参数即可,如:$fops = vframe/jpg/offset/1/w/480/h/360/rotate/90 就表示视频截图了。
通过上面的代码我们就可以触发将存储在空间中的视频从 mp4 格式转换成 m3u8 格式,并设置分辨率和视频码率。 但这个只是将转码这个耗时的操作提交到队列中,要想知道转码操作现在的状态, 需要根据返回的 persitentId 进行查询。如果您不方便持续轮询每个异步处理的进度和状态,七牛可以异步处理完成后通知您们的业务服务器。
相关推荐
七牛云api存储pdf
七牛云存储API,七牛云存储接口,云存储接口
MyQiniuUtil 对七牛云api封装了一些项目中比较实用的工具函数
七牛云上传图片实现添加水印java代码测试类注意事项要先获取七牛的ak,sk以及空间水印样式
用delphi xe7访问七牛云存储,并实现文件上传功能,仅供参考。
一直想通过android客户端删除和上传文件到七牛,但是删除文件android/java版本的一直没有找到,所以只能自己动手写了,本人测试删除成功。
课程作业
小程序对七牛云文件的上传删除,批量删除文件的封装,使用时只需引入utils到项目下,然后在需要用到的地方引入就好例如生成 token 引入 const token = require('../utils/qiniu/qntoken.js') 初始化 var ...
js 基于 h5 file api 开发,可以上传文件至七牛云存储。大于4M文件采用分块上传
七牛云盘是基于七牛开放 API 构建的第三方同步程序。 软件功能(v0.1.2) 自动对指定目录与七牛云存储空间的文件进行 双向 同步。 支持设置 Config/filter.txt 进行文件过滤。 *.txt 表示后缀过滤。 ...
上传图片到七牛云的简单demo
【Delphi七牛云OSS对象存储】支持 获取Bucket列表、设置Bucket权限、创建Bucket、删除Bucket、获取文件列表、上传文件、分片上传文件、下载文件、断点上传下载、删除文件、创建目录、删除目录等功能。api接口文档...
WordPress 七牛云对象存储(简称:WPQiNiu),基于七牛云对象存储与WordPress实现静态资源到对象存储中,让静态资源包括图片、附件分离WordPress根目录,提高网站打开速度。 * 1、下载和激活【WPQiNiu】插件后,配置...
Qiniu-wxapp-SDK 是七牛云在小程序上的实现,网络功能依赖于微信小程序 API。您可以基于 SDK 方便的在小程序中上传文件至七牛云。 Qiniu-wxapp-SDK 为客户端 SDK,没有包含 token 生成实现,为了安全,token 建议...
本文是thinkphp开发系列文章中关于使用七牛云储存的方法和具体实例,非常的简单,有需要的小伙伴可以参考下
上传图片二进制数据到七牛云上面不难, 照着七牛云API文档基本就能行,有一点很坑,七牛云官方文档Python API 贼鸡儿坑,上面的Demo全是,上传本地图片的put_file()方法,我要上传远程服务器上
NULL 博文链接:https://yigang.iteye.com/blog/2161786
过程:TP5+Mysql+优图api+七牛云+简单的自定义坐标取值做法+一些ES6异步语法。用法:runtime和h5/face-ai/save需要777权限;数据库需要配置;七牛云+七牛云主域名+优图的配置参数。此人脸融合的方法不是使用优图的...
基于七牛官方API封装成 SevenCow 类,便于日常调用。 ##Requirements Python 3 qiniu pip install qiniu requests pip install requests ##Usage ###1. upload_all_files_to_qiniu.py 在文件中修改 access_key、...
融合了七牛云存储+阿里OSS存储 优化了TabBar GitHub地址: 有用的话给个start啊 H5在线示例 第一步当然是 npm install 安装下依赖了。 全局自定义loading // 已在 main.js 注册全局组件,在每个页面中 添加即可 ...