开发者社区> 问答> 正文

视频点播 sdk服务器端上传有C#的demo没?相关资料

视频点播 sdk服务器端上传有C#的demo没?相关资料

展开
收起
乐天香橙派 2023-09-11 16:24:17 81 0
3 条回答
写回答
取消 提交回答
  • 是个只会写bug的程序媛啊!!!

    以下是一个使用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}");
        }
    }
    

    在使用上述代码时,需要替换以下参数为实际值:

    • UploadUrl:上传地址,需替换为实际的OSS服务域名。
    • AccessKeyId:鉴权KeyId,需替换为实际的AccessKeyId。
    • AccessKeySecret:鉴权KeySecret,需替换为实际的AccessKeySecret。
    • BucketName:OSS Bucket名称,需替换为实际的Bucket名称。
    2023-09-12 12:00:31
    赞同 展开评论 打赏
  • 目前这块没有的 可以通过OpenApi门户 来查看demo
    5546f2df554c86c3492d1ba32908a5d1.png
    入口是从任何一个接口 点击 调试 就进来了—此回答来自钉群“阿里云-VOD-视频点播-技术交流(进群先看公告)”

    2023-09-11 17:06:46
    赞同 展开评论 打赏
  • 服务端上传SDK封装了获取上传地址和凭证的逻辑和OSS上传逻辑,只需简单配置即可进行上传。完整的上传流程如下图所示:服务端上传SDK流程

    be57755d2807e336cb1b6fdb249888eb_p409383.png

    使用服务端上传SDK(C/C++语言)将各类媒体文件上传至点播存储。

    上传流程
    从内部逻辑角度看,C/C++上传SDK遵循点播服务端SDK的通用流程。详情请参见上传流程。从操作角度看,使用C/C++上传SDK的基础流程如下:

    完成前提条件。请参见前提条件。

    集成Java上传SDK。请参见集成C/C++上传SDK。

    实现上传逻辑(主要是上传信息配置)。

    音视频上传请参见音视频上传。

    图片上传请参见图片上传。

    辅助媒资上传请参见辅助媒资上传。

    image.png

    示例代码

    ```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;
    }
    ```

    2023-09-11 16:54:39
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载