产品百科 | 如何基于 OSS 原生 SDK 上传视频

简介: 视频点播提供了丰富的 上传方式包括客户端上传、服务端上传等,但可能缺乏需要的语言版本(如 Go 等),此时可以直接基于 OSS 原生 SDK 进行上传。

场景

视频点播提供了丰富的 上传方式包括客户端上传服务端上传等,但可能缺乏需要的语言版本(如 Go 等),此时可以直接基于 OSS 原生 SDK 进行上传。

前提

在阅读本文前,请先确定确实没有您所需要语言版本的上传 SDK,点播服务已提供:

  • 客户端上传 SDK:
  • 服务端上传 SDK:

说明 也可以直接访问 SDK 下载页面 下载 SDK 和 Demo,如确实没有您需要的版本,可以继续阅读本文再行开发。

准备工作

  • 确认已开通点播服务并完成了相关配置。
  • 确认已准备了 阿里云账号 AccessKey,并授予了上传权限。

上传步骤

image.png

  1. 访问点播服务获取请参见上传地址和上传凭证
    说明 这一步还会创建视频媒资记录,返回视频 ID,请妥善保存,后续可根据视频 ID 进行视频播放、管理和 AI 处理等。
  2. 解析上传地址(UploadAddress) 和 上传凭证(UploadAuth),得到 OSS 的上传地址和授权信息。解析方式请参见上传地址和凭证的解析
  3. 调用 OSS SDK 将视频文件上传至指定的 bucket 中,注意使用 STS Auth 方式,且使用解析后的上传地址和授权信息进行初始化,不要使用自己的 AccessKey 等信息。

代码实现

  • 核心代码实现共分 4 步:
  1. 使用 AK 初始化 VOD 客户端。
  2. 获取视频上传地址和凭证。
  3. 使用上传凭证和地址初始化 OSS 客户端。
  4. 上传本地文件。
  • OSS-.NET-SDK。
  • OSS-C-SDK。
  • OSS-Go-SDK。
  • OSS-Ruby-SDK。
  • OSS-Java-SDK。

PHP 上传示例

环境准备

  • PHP 5.3+,可通过 php -v 命令查看当前的 PHP 版本。
  • cURL 扩展,可通过 php -m 命令查看 curl 扩展是否已经安装好。

安装

  1. 在您的 PHP 项目中添加空文件夹 aliyun-php-sdk
  2. aliyun-openapi-php-sdk 下载整个源码,解压后拷贝 aliyun-php-sdk-core aliyun-php-sdk-vod 两个文件夹到 aliyun-php-sdk 目录下。
  3. aliyun-oss-php-sdk 下载最新的 OSS PHP SDK 的源码,解压 ZIP 文件后添加文件夹到 aliyun-php-sdk 目录下。以下载 v.2.2.4 Source code (zip) 为例,解压后文件夹为 aliyun-oss-php-sdk-2.2.4。
  4. 打开 aliyun-php-sdk/aliyun-php-sdk-core/Config.php 文件,找到 "//config sdk auto load path." 在这行下面添加:
Autoloader::addAutoloadPath("aliyun-php-sdk-vod");
  1. 在代码中引用 VOD 和 OSS 的文件。示例如下:
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php';   // 假定您的源码文件和aliyun-php-sdk处于同一目录。
require_once './aliyun-php-sdk/aliyun-oss-php-sdk-2.2.4/autoload.php';
use vod\Request\V20170321 as vod;
use OSS\OssClient;
use OSS\Core\OssException;

  1. 说明 更多信息可参考 VOD PHP SDK 安装OSS PHP SDK 安装

参考代码

  • 定义核心步骤的函数:
  1. 使用 AK 初始化 VOD 客户端。示例如下:
function init_vod_client($accessKeyId, $accessKeySecret) {
    $regionId = 'cn-shanghai';     // 根据点播接入服务所在的Region填写,例如:接入服务在上海,则填cn-shanghai
    $profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
    return new DefaultAcsClient($profile);
}
  1. 获取视频上传地址和凭证。示例如下:
function create_upload_video($vodClient) {
    $request = new vod\CreateUploadVideoRequest();
    $request->setTitle("视频标题");        // 视频标题(必填参数)
    $request->setFileName("文件名称.mov"); // 视频源文件名称,必须包含扩展名(必填参数)
    $request->setDescription("视频描述");  // 视频源文件描述(可选)
    $request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"); // 自定义视频封面(可选)
    $request->setTags("标签1,标签2"); // 视频标签,多个用逗号分隔(可选)
    return $vodClient->getAcsResponse($request);
}
  1. 使用上传凭证和地址初始化 OSS 客户端(注意需要先 Base64 解码并 Json Decode 再传入)。示例如下:
function init_oss_client($uploadAuth, $uploadAddress) {
    $ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'], 
        false, $uploadAuth['SecurityToken']);
    $ossClient->setTimeout(86400*7);    // 设置请求超时时间,单位秒,默认是5184000秒, 建议不要设置太小,如果上传文件很大,消耗的时间会比较长
    $ossClient->setConnectTimeout(10);  // 设置连接超时时间,单位秒,默认是10秒
    return $ossClient;
}

  1. 说明 如果由于 SSL 配置异常导致错误 (如出现 cURL error: SSL certificate problem), 可将 https 替换为 http 后再初始化 OssClient。
$uploadAddress['Endpoint'] = str_replace("https:", "http:", $uploadAddress['Endpoint']);
  1. 上传本地文件。示例如下:
function upload_local_file($ossClient, $uploadAddress, $localFile) {
    return $ossClient->uploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);
}
  1. 刷新上传凭证。示例如下:
function refresh_upload_video($vodClient, $videoId) {
    $request = new vod\RefreshUploadVideoRequest();
    $request->setVideoId($videoId);
    return $vodClient->getAcsResponse($request);
}
  • 执行完整流程(注意捕获异常)。示例如下:
$accessKeyId = '<AccessKeyId>';                    // 您的AccessKeyId
$accessKeySecret = '<AccessKeySecret>';            // 您的AccessKeySecret
$localFile = '/Users/yours/Video/testVideo.flv';   // 需要上传到VOD的本地视频文件的完整路径
try {
    // 初始化VOD客户端并获取上传地址和凭证
    $vodClient = init_vod_client($accessKeyId, $accessKeySecret);
    $createRes = create_upload_video($vodClient);
    // 执行成功会返回VideoId、UploadAddress和UploadAuth
    $videoId = $createRes->VideoId;
    $uploadAddress = json_decode(base64_decode($createRes->UploadAddress), true);
    $uploadAuth = json_decode(base64_decode($createRes->UploadAuth), true);
    // 使用UploadAuth和UploadAddress初始化OSS客户端
    $ossClient = init_oss_client($uploadAuth, $uploadAddress);
    // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
    //$result = upload_local_file($ossClient, $uploadAddress, $localFile);
    $result = multipart_upload_file($ossClient, $uploadAddress, $localFile);
    printf("Succeed, VideoId: %s", $videoId);
} catch (Exception $e) {
    // var_dump($e);
    printf("Failed, ErrorMessage: %s", $e->getMessage());
}

GO 上传示例

环境准备

支持 Go 1.7 及以上版本,可到 Go 官网 下载合适的版本安装。

安装

  • 使用 go get 安装 SDK
go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk
  • 说明
  • 安装过程中,界面不会打印提示,请耐心等待。如发生超时,请再次执行命令。
  • 当 GOPATH 对应的目录下出现了子目录 src/github.com/aliyun/alibaba-cloud-sdk-go/services/vod 即表示 SDK 安装成功。
  • 使用 glide 安装 SDK
glide get github.com/aliyun/alibaba-cloud-sdk-go
  • 定义核心步骤的函数:
  1. 使用 AK 初始化 VOD 客户端。示例如下:
func InitVodClient(accessKeyId string, accessKeySecret string) (client *vod.Client, err error) {
    // 点播服务接入区域
    regionId := "cn-shanghai"
    // 创建授权对象
    credential := &credentials.AccessKeyCredential{
        accessKeyId,
        accessKeySecret,
    }
    // 自定义config
    config := sdk.NewConfig()
    config.AutoRetry = true      // 失败是否自动重试
    config.MaxRetryTime = 3      // 最大重试次数
    config.Timeout = 3000000000  // 连接超时,单位:纳秒;默认为3秒
    // 创建vodClient实例
    return vod.NewClientWithOptions(regionId, config, credential)
}
  1. 获取视频上传地址和凭证。示例如下:
func MyCreateUploadVideo(client *vod.Client) (response *vod.CreateUploadVideoResponse, err error) {
    request := vod.CreateCreateUploadVideoRequest()
    request.Title = "Sample Video Title"
    request.Description = "Sample Description"
    request.FileName = "/opt/video/sample/video_file.mp4"
    //request.CateId = "-1"
    request.CoverURL = "http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"
    request.Tags = "tag1,tag2"
    request.AcceptFormat = "JSON"
    return client.CreateUploadVideo(request)
}
  1. 使用上传凭证和地址初始化 OSS 客户端(注意需要先 Base64 解码并 Json Decode 再传入)。示例如下:
func InitOssClient(uploadAuthDTO UploadAuthDTO, uploadAddressDTO UploadAddressDTO) (*oss.Client, error) {
    client, err := oss.New(uploadAddressDTO.Endpoint,
        uploadAuthDTO.AccessKeyId,
        uploadAuthDTO.AccessKeySecret,
        oss.SecurityToken(uploadAuthDTO.SecurityToken),
        oss.Timeout(86400*7, 86400*7))
    return client, err
}
  1. 上传本地文件。示例如下:
func UploadLocalFile(client *oss.Client, uploadAddressDTO UploadAddressDTO, localFile string) {
    // 获取存储空间。
    bucket, err := client.Bucket(uploadAddressDTO.Bucket)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    // 上传本地文件。
    err = bucket.PutObjectFromFile(uploadAddressDTO.FileName, localFile)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}
  1. 刷新上传凭证。示例如下:
func MyRefreshUploadVideo(client *vod.Client) (response *vod.RefreshUploadVideoResponse, err error) {
    request := vod.CreateRefreshUploadVideoRequest()
    request.VideoId = ""
    request.AcceptFormat = "JSON"
    return client.RefreshUploadVideo(request)
}
  • 执行完整流程(注意捕获异常)。示例如下:
type UploadAuthDTO struct {
    AccessKeyId string
    AccessKeySecret string
    SecurityToken string
}
type UploadAddressDTO struct {
    Endpoint string
    Bucket string
    FileName string
}
func main() {
    var accessKeyId string = "<AccessKeyId>";                    // 您的AccessKeyId
    var accessKeySecret string = "<AccessKeySecret>";            // 您的AccessKeySecret
    var localFile string = "/Users/yours/Video/testVideo.flv";   // 需要上传到VOD的本地视频文件的完整路径
    // 初始化VOD客户端并获取上传地址和凭证
    var vodClient, initVodClientErr = InitVodClient(accessKeyId, accessKeySecret)
    if initVodClientErr != nil {
        fmt.Println("Error:", initVodClientErr)
        return
    }
    // 获取上传地址和凭证
    var response, createUploadVideoErr = MyCreateUploadVideo(vodClient)
    if createUploadVideoErr != nil {
        fmt.Println("Error:", createUploadVideoErr)
        return
    }
    // 执行成功会返回VideoId、UploadAddress和UploadAuth
    var videoId = response.VideoId
    var uploadAuthDTO UploadAuthDTO
    var uploadAddressDTO UploadAddressDTO
    var uploadAuthDecode, _ = base64.StdEncoding.DecodeString(response.UploadAuth)
    var uploadAddressDecode, _ = base64.StdEncoding.DecodeString(response.UploadAddress)
    json.Unmarshal(uploadAuthDecode, &uploadAuthDTO)
    json.Unmarshal(uploadAddressDecode, &uploadAddressDTO)
    // 使用UploadAuth和UploadAddress初始化OSS客户端
    var ossClient, _ = InitOssClient(uploadAuthDTO, uploadAddressDTO)
    // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
    UploadLocalFile(ossClient, uploadAddressDTO, localFile)
    //MultipartUploadFile(ossClient, uploadAddressDTO, localFile)
    fmt.Println("Succeed, VideoId:", videoId)
}

.NET 上传示例

环境准备

  • .NET Framework 4.6.1 及其以上版本。
  • .NET Standard 2.0 及其以上版本。

说明 更多信息可参考 环境要求

安装

  • NuGet 方式安装在 解决方案资源管理器面板 中右击您的项目选择 管理 NuGet 程序包 菜单,在打开的 NuGet 管理面板 中点击 浏览 选项卡分别输入 aliyun-net-sdk-core 和 aliyun-net-sdk-vod,选择对应模块最新版本点击 安装 即可。
  • .NET CLI 工具安装。示例如下:
dotnet add package aliyun-net-sdk-core
dotnet add package aliyun-net-sdk-vod

参考代码

  • 定义核心步骤的函数:
  1. 使用 AK 初始化 VOD 客户端。示例如下:
public static DefaultAcsClient InitVodClient(string accessKeyId, string accessKeySecret)
{
    // 根据点播接入服务所在的Region填写,例如:接入服务在上海,则填cn-shanghai
    string regionId = "cn-shanghai";
    IClientProfile profile = DefaultProfile.GetProfile(regionId, accessKeyId, accessKeySecret);
    return new DefaultAcsClient(profile);
}
  1. 获取视频上传地址和凭证。示例如下:
public static CreateUploadVideoResponse CreateUploadVideo(DefaultAcsClient vodClient)
{
    CreateUploadVideoRequest request = new CreateUploadVideoRequest();
    request.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON;
    request.FileName = "vod_test.mp4";
    request.Title = "this is title";
    //request.Description = "this is desc";
    //request.Tags = "tag1,tag2";
    //request.CoverURL = "http://vod.aliyun.com/test_cover_url.jpg";
    //request.CateId = -1;
    //request.TemplateGroupId = "";
    //request.WorkflowId = "";
    //request.StorageLocation = "";
    //request.AppId = "app-1000000";
    //设置请求超时时间
    request.SetReadTimeoutInMilliSeconds(1000);
    request.SetConnectTimeoutInMilliSeconds(1000);
    return vodClient.GetAcsResponse(request);
}
  1. 使用上传凭证和地址初始化 OSS 客户端(注意需要先 Base64 解码并 Json Decode 再传入)。示例如下:
public static OssClient InitOssClient(JObject uploadAuth, JObject uploadAddress) 
{
    string endpoint = uploadAddress.GetValue("Endpoint").ToString();
    string accessKeyId = uploadAuth.GetValue("AccessKeyId").ToString();
    string accessKeySecret = uploadAuth.GetValue("AccessKeySecret").ToString();
    string securityToken = uploadAuth.GetValue("SecurityToken").ToString();
    return new OssClient(endpoint, accessKeyId, accessKeySecret, securityToken);
}
  1. 上传本地文件。示例如下:
public static void UploadLocalFile(OssClient ossClient, JObject uploadAddress, string localFile) 
{
    string bucketName = uploadAddress.GetValue("Bucket").ToString();
    string objectName = uploadAddress.GetValue("FileName").ToString();
    ossClient.PutObject(bucketName, objectName, localFile);
}
  1. 刷新上传凭证。示例如下:
public static RefreshUploadVideoResponse RefreshUploadVideo(DefaultAcsClient vodClient)
{
    RefreshUploadVideoRequest request = new RefreshUploadVideoRequest();
    request.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON;
    request.VideoId = "VideoId";
    //设置请求超时时间
    request.SetReadTimeoutInMilliSeconds(1000);
    request.SetConnectTimeoutInMilliSeconds(1000);
    return vodClient.GetAcsResponse(request);
}
  • 执行完整流程(注意捕获异常)。示例如下:
//您的AccessKeyId
string accessKeyId = "<Your AccessKeyId>"; 
//您的AccessKeySecret
string accessKeySecret = "<Your AccessKeySecret>";
//需要上传到VOD的本地视频文件的完整路径,需要包含文件扩展名
string localFile = "/Users/yours/Video/testVideo.flv";
try {
    // 初始化VOD客户端并获取上传地址和凭证
    DefaultAcsClient vodClient = InitVodClient(accessKeyId, accessKeySecret);
    CreateUploadVideoResponse createUploadVideoResponse = CreateUploadVideo(vodClient);
    // 执行成功会返回VideoId、UploadAddress和UploadAuth
    String videoId = createUploadVideoResponse.VideoId;
    JObject uploadAuth = JObject.Parse(Base64Decode(createUploadVideoResponse.UploadAuth));
    JObject uploadAddress = JObject.Parse(Base64Decode(createUploadVideoResponse.UploadAddress));
    // 使用UploadAuth和UploadAddress初始化OSS客户端
    OssClient ossClient = InitOssClient(uploadAuth, uploadAddress);
    // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
    UploadLocalFile(ossClient, uploadAddress, localFile);
    Console.WriteLine("Put local file succeed, VideoId : " + videoId);
} 
catch (Exception e) 
{
    Console.WriteLine("Put local file fail, ErrorMessage : " + e.Message);
}

Java 上传示例

环境准备

  • 环境要求使用 Java 1.8 及以上版本。
  • 执行命令 java -version 可以查看 Java 版本。

安装

在 Maven 项目中加入依赖项在 Maven 工程中使用 OSS Java SDK,只需在 pom.xml 中加入相应依赖即可。以 2.8.3 版本为例,在内加入如下内容:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>2.8.3</version>
</dependency>

说明 更多信息可参考 VOD Java SDKOSS Java SDK

参考代码

  • 定义核心步骤的函数:
  1. 使用 AK 初始化 VOD 客户端。示例如下:
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
    // 根据点播接入服务所在的Region填写,例如:接入服务在上海,则填cn-shanghai;其他区域请参见文档[点播中心](~~98194~~)
    String regionId = "cn-shanghai";
    DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
}
  1. 获取视频上传地址和凭证。示例如下:
public static CreateUploadVideoResponse createUploadVideo(DefaultAcsClient vodClient) {
    CreateUploadVideoRequest request = new CreateUploadVideoRequest();
    request.setFileName("vod_test.mp4");
    request.setTitle("this is title");
    //request.setDescription("this is desc");
    //request.setTags("tag1,tag2");
    //request.setCoverURL("http://vod.aliyun.com/test_cover_url.jpg");
    //request.setCateId(-1L);
    //request.setTemplateGroupId("");
    //request.setWorkflowId("");
    //request.setStorageLocation("");
    //request.setAppId("app-1000000");
    //设置请求超时时间
    request.setSysReadTimeout(1000);
    request.setSysConnectTimeout(1000);
    return vodClient.getAcsResponse(request);
}
  1. 使用上传凭证和地址初始化 OSS 客户端(注意需要先 Base64 解码并 Json Decode 再传入)。示例如下:
public static OSSClient initOssClient(JSONObject uploadAuth, JSONObject uploadAddress) {
    String endpoint = uploadAddress.getString("Endpoint");
    String accessKeyId = uploadAuth.getString("AccessKeyId");
    String accessKeySecret = uploadAuth.getString("AccessKeySecret");
    String securityToken = uploadAuth.getString("SecurityToken");
    return new OSSClient(endpoint, accessKeyId, accessKeySecret, securityToken);
}
  1. 上传本地文件。示例如下:
public static void uploadLocalFile(OSSClient ossClient, JSONObject uploadAddress, String localFile){
    String bucketName = uploadAddress.getString("Bucket");
    String objectName = uploadAddress.getString("FileName");
    File file = new File(localFile);
    ossClient.putObject(bucketName, objectName, file);
}
  1. 刷新上传凭证。示例如下:
public static RefreshUploadVideoResponse refreshUploadVideo(DefaultAcsClient vodClient) throws ClientException {
    RefreshUploadVideoRequest request = new RefreshUploadVideoRequest();
    request.setAcceptFormat(FormatType.JSON);
    request.setVideoId("VideoId");
    //设置请求超时时间
    request.setSysReadTimeout(1000);
    request.setSysConnectTimeout(1000);
    return vodClient.getAcsResponse(request);
}
  • 执行完整流程(注意捕获异常)。示例如下:
import com.alibaba.fastjson.JSONObject;
import com.aliyun.oss.OSSClient;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoResponse;
import com.aliyuncs.vod.model.v20170321.RefreshUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.RefreshUploadVideoResponse;
import org.apache.commons.codec.binary.Base64;
import java.io.File;
public class UploadDemo {
    public static void main(String[] argv) {
        //您的AccessKeyId
        String accessKeyId = "<Your AccessKeyId>";
        //您的AccessKeySecret
        String accessKeySecret = "<Your AccessKeySecret>";
        //需要上传到VOD的本地视频文件的完整路径,需要包含文件扩展名
        String localFile = "/Users/yours/Video/testVideo.flv";
        try {
            // 初始化VOD客户端并获取上传地址和凭证
            DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
            CreateUploadVideoResponse createUploadVideoResponse = createUploadVideo(vodClient);
            // 执行成功会返回VideoId、UploadAddress和UploadAuth
            String videoId = createUploadVideoResponse.getVideoId();
            JSONObject uploadAuth = JSONObject.parseObject(decodeBase64(createUploadVideoResponse.getUploadAuth()));
            JSONObject uploadAddress = JSONObject.parseObject(decodeBase64(createUploadVideoResponse.getUploadAddress()));
            // 使用UploadAuth和UploadAddress初始化OSS客户端
            OSSClient ossClient = initOssClient(uploadAuth, uploadAddress);
            // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
            uploadLocalFile(ossClient, uploadAddress, localFile);
            System.out.println("Put local file succeed, VideoId : " + videoId);
        } catch (Exception e) {
            System.out.println("Put local file fail, ErrorMessage : " + e.getLocalizedMessage());
        }
    }
}

Demo 下载

说明 其它语言上传 SDK 及 Demo 下载请参见 上传 SDK 下载


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
9月前
|
编解码 数据处理 API
如何用阿里云OSS对图片和视频进行数据处理?
本文介绍了如何利用阿里云对象存储OSS进行图片和视频处理。OSS提供了丰富的功能,如图片的缩放、裁剪、旋转和水印添加等,用户只需在图片URL后附加处理参数即可实现自动化处理。同时,OSS还支持自定义样式模板,便于批量操作。对于视频处理,OSS支持转码、截图、拼接等功能,满足多终端播放需求。通过OSS的API和SDK,开发者可以方便地集成这些功能,提升数据管理效率。
|
监控 开发工具 Android开发
ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
阿里云 ARMS 用户体验监控(RUM)推出了针对原生鸿蒙应用的 SDK。SDK 使用 ArkTS 语言开发,支持页面采集、资源加载采集、异常采集及自定义采集等功能,能够全面监控鸿蒙应用的表现。集成简单,只需几步即可将 SDK 接入项目中,为鸿蒙应用的开发者提供了强有力的支持。
831 118
|
11月前
|
编解码 监控 算法
CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)
本方案通过动态压缩、智能路由及CDN与OSS集成优化,实现视频业务带宽成本下降31%,首帧时间缩短50%,错误率降低53%。结合实测数据分析与架构创新,有效解决冷启动延迟、跨区域传输及设备适配性问题,具备快速投入回收能力。
784 0
|
弹性计算 数据管理 应用服务中间件
活动实践 | 借助OSS搭建在线教育视频课程分享网站
本教程指导用户在阿里云ECS实例上搭建在线教育网站,包括重置ECS密码、配置安全组、安装Nginx、创建网站页面、上传数据至OSS、开通OSS传输加速、配置生命周期策略及清理资源等步骤,实现高效、低成本的数据管理和网站运营。
活动实践 | 借助OSS搭建在线教育视频课程分享网站
|
存储 对象存储 索引
对象存储OSS-m3u8视频私有权限
当上传至私有存储桶的M3U8视频缺少签名信息时,会导致播放失败(403错误)。解决方案是使用OSS的动态签名机制,在首次访问M3U8文件时,通过在URL中添加`x-oss-process=hls/sign`参数,OSS将自动对所有TS切片地址进行签名,确保视频正常播放。
1486 2
|
存储 监控 自动驾驶
对象存储OSS产品介绍
本次分享由王太平(征越)主讲,围绕阿里云对象存储OSS的产品介绍、成本优化、功能实战及最佳实践展开。内容涵盖OSS的五种存储类型及其应用场景,详细解析了生命周期管理在数据存储成本优化中的重要作用,并提供了具体的配置建议和实际案例。适合希望深入了解OSS及优化存储成本的用户参考。
770 0
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
监控 Java Serverless
函数计算产品使用问题之对于OSS打包的zip的保存目录,该如何操作
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
297 6
|
存储 Java 关系型数据库
实时计算 Flink版产品使用问题之以jar包方式同步数据是否需要定义存储oss的位置
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。