先贴出客户端上传文件代码和毁掉函数的定义

需要的引用有: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#回调服务实例代码的更多相关文章

  1. 谷粒 | 10 | 阿里云OSS存储对象服务

    阿里云OSS对象存储服务 准备工作 1.在service模块新建子模块service_oss 2.引入pom.xml文件中引入oss服务依赖 <dependencies> <!--a ...

  2. Thinkphp整合阿里云OSS图片上传实例

    Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...

  3. .Net程序测试阿里云OSS开放存储服务

    阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...

  4. 阿里云OSS对象存储服务(二)

    一.使用SDK 在OSS的概览页右下角找到"Bucket管理",点击"OSS学习路径" 点击"Java SDK"进入SDK开发文档 二.创建 ...

  5. 阿里云OSS对象存储服务(一)

    一.开通"对象存储OSS"服务 申请阿里云账号 实名认证 开通"对象存储OSS"服务 进入管理控制台 二.控制台使用 1.创建Bucket 命名:guli-fi ...

  6. Hexo一键部署到阿里云OSS并设置浏览器缓存

    自建博客地址:https://bytelife.net,欢迎访问! 本文为博客自动同步文章,为了更好的阅读体验,建议您移步至我的博客 本文作者: Jeffrey 本文链接: https://bytel ...

  7. 在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 ...

  8. 使用阿里云OSS的服务端签名后直传功能

    网站一般都会有上传功能,而对象存储服务oss是一个很好的选择.可以快速的搭建起自己的上传文件功能. 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务. 服务端签名后直传 背 ...

  9. 前端(react)上传到阿里云OSS存储 实例

    需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...

随机推荐

  1. 复合类型的声明——是int *p还是int* p

    我们先来看一条基本类型的声明语句:int a, b, ... 即一条声明语句由一个数据类型(int)和紧随其后的一个变量名列表(a, b, ...)组成 更通用的描述是:一个基本数据类型和紧随其后的一 ...

  2. elementUI中的el-form怎么使用正则进行验证

    http://element.eleme.io/#/zh-CN/component/form里给出了一个form验证的例子,但是都是使用el-form带有的验证规则,怎么使用自己定义的规则进行验证呢? ...

  3. 静态化技术Freemarker

    什么是Freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP ...

  4. Dubbo 的 Helloworld

    前提条件 安装好了 ZooKeeper 作为注册中心 服务端 <?xml version="1.0" encoding="UTF-8"?> < ...

  5. Hibernate常用方法之_删除

    1.使用session的delete方法 public void deleteUser(User user){ Session session = null; Transaction transact ...

  6. DataBase -- Employees Earning More Than Their Managers My Submissions Question

    Question: The Employee table holds all employees including their managers. Every employee has an Id, ...

  7. POJ 3693 Maximum repetition substring(最多重复次数的子串)

    Maximum repetition substring Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10461   Ac ...

  8. MySQL使用笔记(三)表的操作

    By francis_hao    Dec 11,2016 表的操作 表的操作有创建表.查看表.删除表和修改表 创建表 创建表之前要在某个数据库中. mysql> create table ta ...

  9. [poj 3436]最大流+输出结果每条边流量

    题目链接:http://poj.org/problem?id=3436 大力套kuangbin板过了orz #include<cstdio> #include<cstring> ...

  10. 简单瞎搞题(bitset的操作)

    链接:https://www.nowcoder.com/acm/contest/132/C来源:牛客网 题目 一共有 n个数,第 i 个数是 xi  xi 可以取 [li , ri] 中任意的一个值. ...