阿里云OSS C#回调服务实例代码
先贴出客户端上传文件代码和毁掉函数的定义
需要的引用有:using Aliyun.OSS;
通过nuget包,获取aliyun.oss dll
string url = "http://184.55.52.41:58123/api/Values/Put";
string postData = "{\"bucket\":\"up01\",\"fileName\":\"2.jpg\",\"etag\":\"image\",\"size\":\"1024\",\"mimeType\":\"5\",\"my_var1\":\"6\",\"my_var2\":\"7\"}"; private void btnUpOss_Click(object sender, EventArgs e)
{
//SampleUpload();
//return; OssClient client = new OssClient("oss-cn-beijing.aliyuncs.com", accessKeyId, accessKeySecret);
postData = "bucket=${bucket}&fileName=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var1=${x:var1}&my_var2=${x:var2}"; var metadata = BuildCallbackMetadata(url, postData); using (var fs = File.Open(textBox1.Text, FileMode.Open))
{
var putObjectRequest = new PutObjectRequest(bucketName, "huTest.jpg", fs, metadata);
var result = client.PutObject(putObjectRequest);
string responseContent = GetCallbackResponse(result);
textBox1.Text = responseContent;
}
} private ObjectMetadata BuildCallbackMetadata(string callbackUrl, string callbackBody)
{
string callbackHeaderBuilder = new CallbackHeaderBuilder(callbackUrl, callbackBody).Build();
string CallbackVariableHeaderBuilder = new CallbackVariableHeaderBuilder().
AddCallbackVariable("x:var1", "bidoStar").AddCallbackVariable("x:var2", "2017-09-19 15:35:12").Build(); var metadata = new ObjectMetadata();
metadata.AddHeader(HttpHeaders.Callback, callbackHeaderBuilder);
metadata.AddHeader(HttpHeaders.CallbackVar, CallbackVariableHeaderBuilder);
return metadata;
}
private string GetCallbackResponse(PutObjectResult putObjectResult)
{
string callbackResponse = null;
using (var stream = putObjectResult.ResponseStream)
{
var buffer = new byte[ * ];
var bytesRead = stream.Read(buffer, , buffer.Length);
callbackResponse = Encoding.Default.GetString(buffer, , bytesRead);
}
return callbackResponse;
}
oss回调服务器的实例代码
以下代码暂时不包含签名等参数;后面会追加加密参数等【等待尝试后,后期更新代码】;
项目是webapi 写的接口;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApiOss.Common;
using Newtonsoft.Json;
using System.Text; namespace WebApiOss.Controllers
{
public class OSSController : ApiController
{
public string Get(string id,string name="pp")
{
Log4Helper.Info(name+"日志内容:" +id);
return "id="+id;
} public JsonModel Post([FromBody]CallBackModel body)
{
Log4Helper.Info("------FileCallBack------");
Log4Helper.Info(body.bucket + " " + body.fileName + " " + body.etag + " " + body.size + " " + body.mimeType + " " + body.my_var1 + " " + body.my_var2 + "&var1:" + body.var1 + " var2:" + body.var2);
return new JsonModel() { status = ,msg=""};
//return new HttpResponseMessage()
//{
// StatusCode = HttpStatusCode.OK,
// Content = new StringContent("{'Status':'OK'}",
// Encoding.UTF8, "application/json")
//};
} public class JsonModel
{
public int status { get; set; }
public string msg { get; set; }
} public class CallBackModel
{
public string bucket { get; set; }
public string fileName { get; set; }
public string etag { get; set; }
public string size { get; set; }
public string mimeType { get; set; }
public string my_var1 { get; set; }
public string my_var2 { get; set; }
public string var1 { get; set; }
public string var2 { get; set; }
}
}
}
OSS服务端 回到函数Code
阿里云OSS C#回调服务实例代码的更多相关文章
- 谷粒 | 10 | 阿里云OSS存储对象服务
阿里云OSS对象存储服务 准备工作 1.在service模块新建子模块service_oss 2.引入pom.xml文件中引入oss服务依赖 <dependencies> <!--a ...
- Thinkphp整合阿里云OSS图片上传实例
Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...
- .Net程序测试阿里云OSS开放存储服务
阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...
- 阿里云OSS对象存储服务(二)
一.使用SDK 在OSS的概览页右下角找到"Bucket管理",点击"OSS学习路径" 点击"Java SDK"进入SDK开发文档 二.创建 ...
- 阿里云OSS对象存储服务(一)
一.开通"对象存储OSS"服务 申请阿里云账号 实名认证 开通"对象存储OSS"服务 进入管理控制台 二.控制台使用 1.创建Bucket 命名:guli-fi ...
- Hexo一键部署到阿里云OSS并设置浏览器缓存
自建博客地址:https://bytelife.net,欢迎访问! 本文为博客自动同步文章,为了更好的阅读体验,建议您移步至我的博客 本文作者: Jeffrey 本文链接: https://bytel ...
- 在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现Web端直传,服务端签名直传并设置上传回调的实现流程
在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程 by shuijingwan · 2016/01/13 1.SDK安装 github ...
- 使用阿里云OSS的服务端签名后直传功能
网站一般都会有上传功能,而对象存储服务oss是一个很好的选择.可以快速的搭建起自己的上传文件功能. 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务. 服务端签名后直传 背 ...
- 前端(react)上传到阿里云OSS存储 实例
需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...
随机推荐
- 测试理论--branch testing and boundary testing
1 branch testing 分支测试 测试代码的所有分支 2 boundary testing 测试 程序的限制条件
- 【转】 The user specified as a definer ('root'@'') does not exist when using LOCK TALBE
在linux下,用mysql的导出语句: mysqldump -u root -pPasswd table >/home/lsf/test.sql 出现了 Got error: 1449: Th ...
- ps aux 和ps -aux和 ps -ef的选择
转载自:足至迹留 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想 ...
- hbase表的写入
hbase列式存储给我们画了一个很美好的大饼,好像有了它,很多问题都可以轻易解决.但在实际的使用过程当中,你会发现没有那么简单,至少一些通用的准则要遵守,还需要根据业务的实际特点进行集群的参数调整,不 ...
- doget,doPost在底层走的是service
doget,doPost在底层走的是service 因为在源码上 先执行service方法 然后再调用doget,doPost方法
- 输入的是util包下面的 时间, 接受的是java.sql.date 或者 java.util.date类型
- 2017 Multi-University Training Contest - Team 2 Puzzle
题目大意: 给定n, m, p.然后按照一个规则往n*m的方格里填数,最后一个方格是空格,然后玩拼图游戏,问能否复原 规则是:把1~n*m-1的排列中的第1,p+1,2*p+1.....个数依次取出来 ...
- WPS是个坑
WPS2016 10.1.0.5740 存储的EXCEL表格文件,用PHP mime_content_type函数获取到的mime类型是“application/zip”
- C&C++——C函数与C++函数相互调用问题
C C++相互调用 在项目中融合C和C++有时是不可避免的,在调用对方的功能函数的时候,或许会出现这样那样的问题,但只要我的C代码和我的C++代码分别都能成功编译,那其他就不是问题.近来在主程序是C语 ...
- [AHOI2005]航线规划——LCT维护边双联通分量
因为只能支持加入一个边维护边双,所以时光倒流 维护好边双,每次就是提取出(x,y)的链,答案就是链长度-1 具体维护边双的话, void access(int x){ for(reg y=0;x;y= ...