mediaassetsdk

package module
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 License: MIT Imports: 21 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 := 80 // 调用服务的的 port
secretID := "secretID" // secretID
secretKey := "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)

批量创建媒体

req := request.CreateMediasRequest{}
req.UploadMediaSet = append(req.UploadMediaSet, request.UploadMedia{
  Name:     "直播流测试1",
  MediaURL: "http://live.tencent.com",
  MediaMeta: request.MediaMeta{
    MediaType: "直播流",
    MediaTag:  "新闻",
  },
})
req.UploadMediaSet = append(req.UploadMediaSet, request.UploadMedia{
  Name:     "测试2",
  MediaURL: "http://video.tencent.com",
  MediaMeta: request.MediaMeta{
    MediaType: "视频",
    MediaTag:  "新闻",
  },
})
req.UploadMediaSet = append(req.UploadMediaSet, request.UploadMedia{
  Name:     "测试2",
  LocalPath: "/data/test.mp4",
  MediaMeta: request.MediaMeta{
    MediaType: "视频",
    MediaTag:  "新闻",
  },
})
rsp, err := client.CreateMedias(&req)
if err == nil && rsp.Response.ApiError == nil {
  bys, _ := json.Marshal(rsp)
  fmt.Println(string(bys))
}

工具

上传单个媒体工具

go run

go run tools/upload_media.go -h

centos

./tools/upload_media -h

Documentation

Index

Constants

View Source
const (
	MediaTypeVideo = "视频"
	MediaTypeLive  = "直播流"
	MediaTypeImage = "图片"
	MediaTypeAudio = "音频"
	MediaTypeText  = "文稿"
)

媒体类型

View Source
const (
	MediaLabelNews          = "新闻"
	MediaLabelEntertainment = "综艺"
	MediaLabelInternetInfo  = "互联网资讯"
	MediaLabelMovie         = "电影"
	MediaLabelSeries        = "电视剧"
	MediaLabelSpecial       = "专题"
	MediaLabelSport         = "体育"
)

媒体标签

View Source
const (
	MediaSecondLabelEvening = "晚会"
	MediaSecondLabelOther   = "其他"
)

媒体二级标签

View Source
const (
	MediaLangMandarin  = "普通话"
	MediaLangCantonese = "粤语"
)

媒体语言

View Source
const (
	MediaStateUploading     = "上传中"
	MediaStateWaitingVerify = "等待验证"
	MediaStateCompleted     = "上传完成"
	MediaStateFailed        = "上传失败"
	MediaStateDownloading   = "下载素材中"
	MediaStateVerifying     = "验证素材中"
	MediaStateDeleted       = "素材已删除"
	MediaStateCleaned       = "素材已清理"
)
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              uint32
	TIBusinessID             uint32
	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 uint32) *MediaAssetClient

MakeMediaAssetClient 创建一个客户端

func (MediaAssetClient) CheckStatusFailed added in v1.3.0

func (client MediaAssetClient) CheckStatusFailed(status string) bool

CheckStatusFailed 检查媒体状态是否是上传失败

func (MediaAssetClient) CheckStatusSuccess added in v1.3.0

func (client MediaAssetClient) CheckStatusSuccess(status string) bool

CheckStatusSuccess 检查媒体状态是否是上传成功

func (*MediaAssetClient) CreateMedias added in v1.0.1

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

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) DescribeNewURL added in v1.3.0

DescribeNewURL

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,
	persistent bool, 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)

	// CreateMedias 批量创建媒体
	CreateMedias(req *request.CreateMediasRequest) (rsp *response.CreateMediasResponse, 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