七牛-异步队列

原创 2016年08月29日 08:55:00

1.七牛的异步队列是这样的模型:上传的时候构造uptoken的时候增加notifyQueue,notifyMessage,notifyMessageType这几个参数,即通知队列名,通知队列信息,通知信息格式。(通知队列需要提前获取的,是七牛提供的,不能自己生成)

2.上传之后,客户服务器向七牛服务器发起请求,这时候七牛服务器反馈通知队列的信息给业务服务器。

ps:以目前的版本是修改下Auth类中的参数,将notifyQueue,notifyMessage,notifyMessageType添加进去。

举例:

import com.qiniu.common.QiniuException;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.junit.Test;
import java.io.IOException;

public class NotifyQueue
{
    //设置好账号的ACCESS_KEY和SECRET_KEY
    String ak = "";
    String sk = "";
    //要上传的空间
    String bucketname = "test";
    //上传到七牛后保存的文件名
    String key = "5ee2613d-3e1c-478c-b369-cf96c464ea53.png";
    //上传文件的路径
    String FilePath = "/Users/Jun/work/111.jpeg";

    //密钥配置
    Auth auth = Auth.create(ak, sk);
    //创建上传对象
    UploadManager uploadManager = new UploadManager();

    //简单上传,使用默认策略,只需要设置上传的空间名就可以了
    //**这个队列名是要七牛提供的**
    public String getUpToken(){
        return auth.uploadToken(bucketname,null,3600,new StringMap().put("notifyQueue","lilanjun").put("notifyMessage","bucket=$(bucket)&key=$(key)&time=$(time)").put("notifyMessageType","application/json"));
    }
    @Test
    public void test1()
    {
        try {
            //调用put方法上传
            System.out.println(getUpToken());
            com.qiniu.http.Response res = uploadManager.put(FilePath,key, getUpToken());
            //打印返回的信息
            System.out.println(res.bodyString());
        } catch (QiniuException e) {
            com.qiniu.http.Response r = e.response;
            // 请求失败时打印的异常的信息
            System.out.println(r.toString());
            try {
                //响应的文本信息
                System.out.println(r.bodyString());
            } catch (QiniuException e1) {
                //ignore
            }
        }
    }
    //GET /queues/<QueueName>/consume?position=<Position>&limit=<Limit>
    //Authorization: <UserToken>
    @Test
    public void test2() throws IOException
    {

        String str = "/queues/lilanjun/consume?position=null&limit=500\n";
        String access_token =  auth.sign(str);

        String url = "http://api.qiniu.com/queues/lilanjun/consume?position=null&limit=500";
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder().url(url).
                addHeader("Content-Type","application/json")
                .addHeader("Authorization","QBox "+access_token)
                .build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful())
        {
            System.out.println(response.body().string());
        }
        else {
            throw new IOException("Unexpected code " + response);
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

七牛云-上传策略之数据处理

概述继上一篇文章 七牛云-上传策略常用示例 介绍了七牛上传策略中的常见的使用场景,本文主要介绍如何使用上传策略实现在文件上传成功后自动调用七牛提供的数据处理接口,进行数据处理操作。使用示例视频文字水印...
  • PEACEFUL000
  • PEACEFUL000
  • 2017年08月15日 00:02
  • 411

话说android端七牛图片上传

七牛图片上传业务流程如下图(这是官方的图): 由上图可知,要想实现图片上传,是要三端进行交互的(我刚刚开始以为只要七牛服务器跟客户端交互就行) 接下来步骤如下: 1、首先肯定是要有一个七...
  • u013560890
  • u013560890
  • 2015年04月04日 10:51
  • 2399

七牛云之 avthumb 视频转码

概述:很多用户使用七牛的云存储服务,存放很多mp4文件到七牛的存储空间,但是通过复制外链,然后在浏览器中播放,经常会遇到“只有音频,没有视频”的情况; 其实这个不是七牛的存储有问题,而是视频的编码方式...
  • PEACEFUL000
  • PEACEFUL000
  • 2016年12月01日 16:02
  • 3167

七牛---将空间资源复制到另外一个空间详解

很多用户使用七牛过程中有将资源从一个空间复制到另外一个空间的需求,这种情况下可用我们的sdk先list出所有的文件然后在批量复制,但是使用同步工具进行同步的方法是最快的,下面详解这种方法: 下载七牛的...
  • netdxy
  • netdxy
  • 2016年01月12日 21:10
  • 3614

PHP异步上传文件到七牛

  • github_26672553
  • github_26672553
  • 2015年09月08日 11:58
  • 907

C++ 跨平台 异步消息队列

  • 2017年11月23日 07:04
  • 3KB
  • 下载

spring amqp实现异步消息队列的股票系统

  • 2017年12月26日 15:04
  • 435KB
  • 下载

Socket异步通信,线程,双端队列

  • 2010年05月21日 11:45
  • 247KB
  • 下载

消息队列MSMQ创建,同步异步接受消息

  • 2013年02月25日 09:03
  • 112KB
  • 下载

Socket异步通信,线程,双端队列

  • 2010年12月07日 21:31
  • 151KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:七牛-异步队列
举报原因:
原因补充:

(最多只允许输入30个字)