python - 使用 Lambda 将转录的 json 文件存储到 s3 中的特定文件夹
问题描述
我正在关注这个(https://towardsdatascience.com/speech-to-text-using-aws-transcribe-s3-and-lambda-a6e88fb3a48e)博客来创建一个转录文件。视频从控制台上传到 S3,并触发 lambda 函数,该函数调用 Transcribe API 并将该文件存储在目标存储桶中。所以一切运行良好。
但它将文件放在 S3 的根文件夹中。我想在 Lambda 代码的目标存储桶中给出前缀。这意味着我想以这种方式存储转录文件s3://<bucketname>/<folder1>/transcibe.json
。
我在 OutputBucketName(代码中的第 32 行)上尝试了多种方法,但仍然没有任何效果。
import boto3
import uuid
import json
def lambda_handler(event, context):
record = event['Records'][0]
print(record)
s3bucket = record['s3']['bucket']['name']
s3object = record['s3']['object']['key']
sourcekey=s3object
s3Path = "s3://" + s3bucket + "/" + s3object
print(s3Path)
print(s3object.split("/"))
jobName = (s3object[-1]) + '-' + str(uuid.uuid4())
destkey = sourcekey-s3object[-1]
print(destkey)
client = boto3.client('transcribe')
response = client.start_transcription_job(
TranscriptionJobName=jobName,
LanguageCode='en-GB',
MediaFormat='mp4',
Media={
'MediaFileUri': s3Path
},
OutputKey=destkey,
OutputBucketName = "destination-bucket-name"
)
return {
'TranscriptionJobName': response['TranscriptionJob']['TranscriptionJobName']
}
解决方案
推荐阅读
- c# - 正则表达式:C# 从 javascript 部分中提取值
- excel - 选择包含文本的第一行中的最后一列,然后转到下一行并执行相同操作
- python - 一个函数中的两个列表,在 python 中有 n 个列表,执行最少
- c# - 在 Asp.Net Core 3.3 中从 appSettings.json 访问 ConnectionString 时出现异常
- r - 如何使用 R 在 n 维中应用此代码?
- python - Tkinter - 如何更改菜单栏小部件中的分隔符样式?
- excel - 带有高级过滤器的 Excel VBA“错误:Excel 资源不足”
- bash - 获取 bash_profile 不会删除注释的别名/函数
- jquery - 如何检查最后一个 TR 的最后一个 TD 是否包含一个空的选择字段和三个空的输入字段?
- android - 如何在 React Native 上制作软波纹动画?