Go语言 来自minio对象的流媒体文件

ttisahbt  于 2023-05-20  发布在  Go
关注(0)|答案(1)|浏览(225)

我有一个后端去光纤服务器,将服务从云服务使用minio客户端sdk获取的文件。我的目标是实现视频文件流与暴露直接连接到云的网址和视频必须是可搜索的,无论是向前和向后(作为云的网址相同的功能)。然而,当我添加从服务器发送的流时,视频就不能被搜索或有时只能向后搜索。我尝试设置响应的Content-Length、Content-Type、Content-Range等。但这行不通注意:所有的行为都发生在chrome最新的稳定版本中,而不是firefox或postman。下面是我的代码:

// c is the *fiber.Ctx

object, err := minioClient.GetObject(context.Background(), bucketName, fileName, minio.GetObjectOptions{})
if err != nil {
    return err
}

objInfo, err := object.Stat()
if err != nil {
    return err
}

buffer := make([]byte, objInfo.Size)
object.Read(buffer)

c.Set("Content-Length", fmt.Sprintf("%d", objInfo.Size))
c.Set("Content-Type", "video/mp4")
c.Set("Connection", "keep-alive")
c.Set("Content-Range", fmt.Sprintf("bytes 0-%d/%d", objInfo.Size, objInfo.Size))

c.Response().SetBodyStream(bytes.NewReader(buffer), int(objInfo.Size))
return nil

//c.SendStream just won't work
n9vozmp4

n9vozmp41#

我已经找到解决办法了。结果我只需要添加Accept-Ranges头lol。

相关问题