Flutter AWS:如何对存储桶的IAM角色用户进行身份验证并获取hls视频文件的AWS S3对象并在视频播放器中播



如何按区域、存储桶 ID、访问密钥和 sceret 密钥对 IAM 角色用户进行身份验证,并获取视频文件对象并在视频播放器中播放。 实际上,我们已经在 AWS S3 中上传了视频文件,并向一个 IAM 角色用户授予了访问权限。

现在从颤振应用程序中,我需要通过访问密钥、私有密钥对 IAM 用户进行身份验证,并获取视频对象并在视频播放器中播放,而无需在本地保存或下载。

我尝试使用插件,

flutter_aws_s3_client: ^0.5.0

const region = "<region>";
const bucketId = "<bucket id>";
final AwsS3Client s3client = AwsS3Client(
region: region,
host: "s3.$region.amazonaws.com",
bucketId: bucketId,
accessKey: "<accesskey>",
secretKey: "<secretkey>");
//object video name 
final response = await s3client.getObject("example_test.m3u8");

在这里我得到的对象响应为 200,但我如何在视频播放器中传递和播放这个视频文件? 有什么办法吗? 我尝试在世博播放器安卓video_player_plugin.dart中添加HEADER。但没有运气。

视频播放器插件

video_player: ^0.10.11+1

class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network('//need to pass the videoUrl of AWS S3')
..initialize().then((_) {
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Demo',
home: Scaffold(
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}

所以帮我解决这个问题?

提前致谢

为此,您需要执行一些步骤 1:获取访问响应 2:然后重定向或调用该视频小部件,以便加载该视频

最新更新