首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用lambda函数将.m3u8文件及其.ts文件复制到另一个S3桶中

如何使用lambda函数将.m3u8文件及其.ts文件复制到另一个S3桶中
EN

Stack Overflow用户
提问于 2021-07-08 10:06:55
回答 1查看 228关注 0票数 0

我是nodeJS新手,目前实现了一个拷贝端点,在S3桶中使用nodeJS将文件复制到另一个。因此,我需要编写的Lambda函数需要将.m3u8文件及其对应的.ts文件复制到另一个桶中,同时为.m3u8文件提供不同的名称。如果源文件的命名格式是${mediaId1}.m3u8,那么复制的.m3u8文件应该是${mediaId2}.m3u8.源.m3u8及其对应的.ts文件在同一个桶中,而.ts文件和其他.m3u8文件在处理时不需要更改其名称,因此在更改名称时只需要复制主.m3u8。

我试图按以下方式处理.m3u8文件。

代码语言:javascript
复制
const SourceKey = `${result.Item.system}/${result.Item.prefix}/${result.Item.mediaId}/AppleHLS1/${result.Item.mediaId}.m3u8`;
           const TargetKey = `${result.Item.system}/${data.prefix}/${targertmediaId}/AppleHLS1/${targertmediaId}.m3u8`;
           var paramsS3 = {
             Bucket: process.env.S3_BUCKET_NAME_OUTPUT,
             Key: TargetKey,
             Metadata: data.metadata,
             SourceKey: SourceKey,
           };
 
 
           s3.copyObject(paramsS3, function (error, data) {
             if (error) console.log(error, error.stack);
             else  console.log(data)
               
           });

因此,我是否有可能列出桶中剩余的.ts和.m3u8文件,并逐个复制它们,而不需要同时处理每个文件。

下面是所有.ts和.m3u8文件所在的桶。只有最后一个.m3u8文件需要更改其名称,而其他.m3u8和.ts在处理时保持不变。

EN

回答 1

Stack Overflow用户

发布于 2021-07-16 04:19:25

您可以使用ListObjectsCommand客户端中可用的s3命令来列出桶中的所有对象。可以为筛选结果指定对象的前缀。

在您的示例中,您可能需要准备两个ListObjectsCommand,一个用于主.m3u8文件,另一个用于所有其他文件。

然后可以使用PutObjectCommand逐个复制文件。

检查开发人员指南

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68299571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档