视频点播 sdk服务器端上传有C#的demo没?相关资料
以下是一个使用C#实现视频点播SDK服务器端上传的示例代码:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
public class VideoUploader
{
private const string UploadUrl = "http://example.com/upload"; // 上传地址
private const string AccessKeyId = "your_access_key_id"; // 鉴权KeyId
private const string AccessKeySecret = "your_access_key_secret"; // 鉴权KeySecret
private const string BucketName = "your_bucket_name"; // OSS Bucket名称
public async Task UploadAsync(string filePath)
{
var auth = new OSSAuth(AccessKeyId, AccessKeySecret);
var client = new OSSClient(auth, UploadUrl);
var bucket = client.GetBucket(BucketName);
var key = Path.GetFileName(filePath);
var content = File.ReadAllBytes(filePath);
var result = await bucket.PutObjectAsync(key, content);
Console.WriteLine($"Upload {filePath} success, ETag: {result.ETag}");
}
}
在使用上述代码时,需要替换以下参数为实际值:
目前这块没有的 可以通过OpenApi门户 来查看demo
入口是从任何一个接口 点击 调试 就进来了—此回答来自钉群“阿里云-VOD-视频点播-技术交流(进群先看公告)”
服务端上传SDK封装了获取上传地址和凭证的逻辑和OSS上传逻辑,只需简单配置即可进行上传。完整的上传流程如下图所示:服务端上传SDK流程
使用服务端上传SDK(C/C++语言)将各类媒体文件上传至点播存储。
上传流程
从内部逻辑角度看,C/C++上传SDK遵循点播服务端SDK的通用流程。详情请参见上传流程。从操作角度看,使用C/C++上传SDK的基础流程如下:
完成前提条件。请参见前提条件。
集成Java上传SDK。请参见集成C/C++上传SDK。
实现上传逻辑(主要是上传信息配置)。
音视频上传请参见音视频上传。
图片上传请参见图片上传。
辅助媒资上传请参见辅助媒资上传。
示例代码
```void testCallback(int64_t consumed_bytes, int64_t total_bytes)
{
printf("total :%ld, %ld\n", consumed_bytes, total_bytes);
}
//测试上传本地视频
VodApiResponse testUploadLocalVideo(VodCredential authInfo) {
CreateUploadVideoRequest request;
//视频源文件名
request.fileName = "test.mp4";
//视频标题
request.title = "testVideo";
//视频分类ID
request.cateId = "1";
//自定义视频封面的URL地址,coverURL示例:http://example.com/example-.jpg
request.coverURL = "";
//视频标签
request.tags = "test1,test2";
//转码模板组ID
request.templateGroupId = "6ae347b0140181ad371d197ebe28";
//存储地址,storageLocation示例:example-bucket-.oss-cn-shanghai.aliyuncs.com
requests.storageLocation = "";
Json::Value userData;
Json::Value callbackUrl;
//CallbackURL示例:https://example.aliyundoc.com/ProcessMessageCallback
callbackUrl["CallbackURL"] = "";
userData["MessageCallback"] = callbackUrl;
Json::Value extend;
extend["localId"] = "xxx";
extend["test"] = "www";
userData["Extend"] = extend;
request.userData = userData.toStyledString();
UploadOptions uploadOptions;
//设置上传脚本部署的ECS区域(如果有),如与视频点播存储同一区域会自动启用内网上传
//uploadOptions.ecsRegionId = "cn-shanghai";
//设置自定义回调函数,否则设置为默认,设置为NULL不回调
//uploadOptions.uploadProgressCallback = testCallback;
//uploadOptions.multipartUploadLimit = 2010241024;//设置分片上传阈值
//uploadOptions.multipartUploadOnceSize = 1010241024;//设置分片上传分片大小
VodApiResponse result = uploadLocalVideo(authInfo, request, "./test.mp4", uploadOptions);
return result;
}
//测试上传网络视频
VodApiResponse testUploadWebVideo(VodCredential authInfo) {
CreateUploadVideoRequest request;
request.fileName = "testWeb.mp4";
request.title = "testUploadWebVideo";
UploadOptions uploadOptions;
//设置上传脚本部署的ECS区域(如果有),如与视频点播存储同一区域会自动启用内网上传
//uploadOptions.ecsRegionId = "cn-shanghai";
//设置自定义回调函数,否则设置为默认,设置为NULL不回调
//uploadOptions.uploadProgressCallback = testCallback;
//uploadOptions.multipartUploadLimit = 2010241024;//设置分片上传阈值
//uploadOptions.multipartUploadOnceSize = 1010241024;//设置分片上传分片大小
//设置下载临时目录,默认为/tmp/
//uploadOptions.tmpDir = "/tmp/";
VodApiResponse result = uploadWebVideo(authInfo, request, "", uploadOptions);
return result;
}
VodCredential initVodClient(std::string accessKeyId, std::string accessKeySecret) {
VodCredential authInfo;
authInfo.accessKeyId = accessKeyId;
authInfo.accessKeySecret = accessKeySecret;
authInfo.regionId = "cn-shanghai";
return authInfo;
}
```
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。