mediaassetsdk

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2021 License: MIT Imports: 20 Imported by: 0

README

media-asset-go-sdk

此SDK用于在go语言中中方便的向媒体管理系统上传媒体资源。使用此SDK之前请先参考相关的API接口文档。

构建客户端

所有的方法都封装在 mediaassetsdk.MediaAssetClient。构造一个MediaAssetClient的方法如下

import (
  mediaassetsdk "github.com/Tencent-media-asset-system-sdk/media-asset-go-sdk"
)

host := "106.52.71.124" // 调用服务的的 host
port := "" // 调用服务的的 port, 80 填空
secretID := "secretID" // secretID
secretID := "secretKey" // secretKey
businessID := 1 // 业务ID
projectID := 1 // 项目ID
// TODO: config below
client := mediaassetsdk.MakeMediaAssetClient(host, port, secretID, secretKey, projectID, businessID)

获取支持媒体列表

response, reqID, err := client.DescribeCategories()
// response 返回的支持的媒体列表信息 *response.DescribeCategoriesResponse 结构
if err != nil {
  fmt.Println("DescribeCategories failed, error: ", err, ", reqID: ", reqID)
} else {
  bys, _ = json.MarshalIndent(response, "", "    ")
  fmt.Println("DescribeCategories: ", string(bys))
}

上传媒体

import "github.com/Tencent-media-asset-system-sdk/media-asset-go-sdk/media_asset_service/request"

filePath := "data/test.mp4" // 文件路径
mediaName := "test视频" // 媒体名称
mediaType := "视频" // 媒体类型, 可选 视频,音频,图片
mediaTag := "新闻" // 媒体标签, 可选 新闻, 综艺, 电影, 电视剧, 体育, 专题, 互联网资讯
mediaSecondTag := "" // 二级标签,如果一级标签为综艺可选 "晚会" 和 "其他",其他为空
mediaLang := "普通话" // 可选 普通话, 粤语
coroutineNum := 4 // 并发上传的协程数
mediaMeta := request.MediaMeta{
  MediaType:      mediaType,
  MediaTag:       mediaTag,
  MediaSecondTag: mediaSecondTag,
  MediaLang:      mediaLang,
}

// 上传文件到媒体管理系统
media, reqSet, err := client.UploadFile(filePath, mediaName, mediaMeta, coroutineNum)
// media 上传成功后的媒体信息 *response.MediaInfo 结构
if err != nil {
  fmt.Println("Upload failed, error: ", err, " RequestIDSet: ", reqSet)
} else {
  bys, _ := json.MarshalIndent(media, "", "    ")
  fmt.Println("Upload success, media: ", string(bys))
}

// 上传内存到媒体管理系统
filebuf, err := ioutil.ReadFile(filePath)
if err != nil {
  media, reqSet, err := client.UploadBuf(filebuf, mediaName, mediaMeta, coroutineNum)
} else {
  fmt.Println("Read file error: ", err)
}

获取指定媒体详细信息

medias, reqID, err := client.DescribeMediaDetails([]uint64{media.MediaID})
// medias 返回的媒体信息列表 []*response.MediaInfo

下载媒体

// 下载媒体到文件
dir := "./data" // 下载到的目录
fileName := "download.mp4" // 下载的文件名
if err := client.DownloadFile(media.DownLoadURL, dir, fileName); err != nil {
  fmt.Println("DownloadFile failed, error: ", err)
}

// 下载媒体到内存
buf, err := client.DownloadToBuf(media.DownLoadURL)
if err != nil {
  fmt.Println("DownloadToBuf failed, error: ", err)
}

获取上传媒体列表

medias, tot, reqID, err := client.DescribeMedias(1, 20, &request.FilterBy{MediaNameOrID: mediaName})
// medias 返回的媒体列表 []*response.MediaInfo
// tot 列表的总媒体数
if err != nil {
  fmt.Println("DescribeMedias failed, error: ", err, " reqID: ", reqID)
}

删除媒体

failedMedias, reqID, err := client.RemoveMedias([]uint64{media.MediaID})
// failedMedias 删除失败的媒体信息列表 []*response.FailedMediaInfo 结构

修改媒体类型

newTag := ""综艺" // 新标签
newSeconeTag := "晚会" // 新二级标签
reqID, err := client.ModifyMedia(media.MediaID, newTag, newSeconeTag);

修改媒体过期时间

day := 1 // 媒体过期时间
reqID, err := client.ModifyExpireTime(media.MediaID, day)

工具

上传单个媒体工具

go run

go run tools/upload_media.go -h

centos

./tools/upload_media -h

Documentation

Index

Constants

View Source
const BloackSzie = 32 * 1024 * 1024

上传分辨大小 10M

Variables

This section is empty.

Functions

This section is empty.

Types

type MediaAssetClient

type MediaAssetClient struct {
	Host                     string
	Port                     int
	SecretID                 string
	SecretKey                string
	TIProjectID              int
	TIBusinessID             int
	Inner                    bool
	InnerMediaAssetEndPoint  string
	InnerFileManagerEndPoint string
	InnerFileStaticEndPoint  string
	InnerUserName            string
	InnerDataDir             string
}

sdk客户端

func MakeMediaAssetClient

func MakeMediaAssetClient(host string, port int, secretID, secretKey string,
	tiProjectID, tiBusinessID int) *MediaAssetClient

MakeMediaAssetClient 创建一个客户端

func (*MediaAssetClient) DescribeCategories

func (m *MediaAssetClient) DescribeCategories() (
	categortSet *response.DescribeCategoriesResponse, requestID string, err error)

RemoveMedias 返回可选媒体类型列表

func (*MediaAssetClient) DescribeMediaDetails

func (m *MediaAssetClient) DescribeMediaDetails(mediaIDs []uint64) (
	mediaSet []*response.MediaInfo, requestID string, err error)

DescribeMediaDetails 获取指定媒体集的详情

func (*MediaAssetClient) DescribeMedias

func (m *MediaAssetClient) DescribeMedias(pageNumber, pageSize int, filterBy *request.FilterBy) (
	mediaSet []*response.MediaInfo, totalCount int, requestID string, err error)

RemoveMedias 拉取媒体列表

func (*MediaAssetClient) DownloadFile

func (m *MediaAssetClient) DownloadFile(downloadURL, dir, fileName string) (err error)

DownloadFile 通过媒体信息返回的url下载文件到本地

func (*MediaAssetClient) DownloadToBuf

func (m *MediaAssetClient) DownloadToBuf(downloadURL string) (buf []byte, err error)

DownloadToBuf 通过媒体信息返回的url下载文件到内存

func (*MediaAssetClient) ModifyExpireTime

func (m *MediaAssetClient) ModifyExpireTime(mediaID uint64, days int) (requestID string, err error)

ModifyExpireTime 修改文件过期时间,当前时间算起来,有效时间为 days 天

func (*MediaAssetClient) ModifyMedia

func (m *MediaAssetClient) ModifyMedia(mediaID uint64, mediaTag, mediaSecondTag string) (
	requestID string, err error)

ModifyMedia 修改媒体信息

func (*MediaAssetClient) RemoveMedias

func (m *MediaAssetClient) RemoveMedias(mediaIDs []uint64) (
	failedMediaSet []*response.FailedMediaInfo, requestID string, err error)

RemoveMedias 删除指定媒体集

func (*MediaAssetClient) UploadBuf

func (m *MediaAssetClient) UploadBuf(buf []byte, mediaName string, mediaMeta request.MediaMeta, coroutineNum int) (
	media *response.MediaInfo, requestIDSet []string, err error)

UploadBuf 上传内存文件 filePath 文件路径 coroutineNum 上传最大并发协程数 mediaInfo request.MediaMeta 媒体的类型和标签信息

func (*MediaAssetClient) UploadFile

func (m *MediaAssetClient) UploadFile(filePath, mediaName string, mediaMeta request.MediaMeta, coroutineNum int) (
	media *response.MediaInfo, requestIDSet []string, err error)

UploadFile 上传文件 filePath 文件路径 coroutineNum 上传最大并发协程数 mediaInfo request.MediaMeta 媒体的类型和标签信息

type MediaAssetFunction

type MediaAssetFunction interface {
	// UploadFile 上传文件
	// filePath 文件路径
	// mediaName 媒体名称
	// coroutineNum 上传最大并发协程数
	// mediaInfo request.MediaMeta 媒体的类型和标签信息
	UploadFile(filePath, mediaName string, mediaMeta request.MediaMeta, coroutineNum int) (
		media *response.MediaInfo, requestIDSet []string, err error)

	// DownloadFile 通过媒体信息返回的url下载文件到本地
	DownloadFile(downloadURL, dir, fileName string) (err error)

	// DownloadToBuf 通过媒体信息返回的url下载文件到内存
	DownloadToBuf(downloadURL string) (buf []byte, err error)

	// DescribeMedias 拉取媒体列表
	DescribeMedias(pageNumber, pageSize int, filterBy *request.FilterBy) (
		mediaSet []*response.MediaInfo, totalCount int, requestID string, err error)

	// DescribeMediaDetails 获取指定媒体集的详情
	DescribeMediaDetails(mediaIDs []uint64) (mediaSet []*response.MediaInfo, requestID string, err error)

	// RemoveMedias 删除指定媒体集
	RemoveMedias(mediaIDs []uint64) (failedMediaSet []*response.FailedMediaInfo, requestID string, err error)

	// DescribeCategories 返回可选媒体类型列表
	DescribeCategories() (categortSet *response.DescribeCategoriesResponse, requestID string, err error)

	// ModifyMedia 修改媒体信息
	ModifyMedia(mediaID uint64, mediaTag, mediaSecondTag string) (requestID string, err error)

	// ModifyExpireTime 修改文件过期时间,当前时间算起来,有效时间为 days 天
	ModifyExpireTime(mediaID uint64, days int) (requestID string, err error)
}

MediaAssetFunction 媒体管理系统sdk功能列表

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL