我试图使用API接口将视频上传到S3存储桶,我遵循了预签名的URL过程,下面是我的lambda函数,它返回预签名的URL(它正确地返回了预签名的URL,看起来):
import json
import base64
import boto3
import uuid
BUCKET_NAME = 'redacted-bucket-instance'
def lambda_handler(event, context):
actionId = uuid.uuid4()
file_path = "video_uploads/" + str(actionId) + ".mp4"
s3 = boto3.client('s3')
s3Params = {
"Bucket": BUCKET_NAME,
"Key": file_path,
"ContentType": 'video/mp4',
"ACL": 'public-read'
}
try:
s3_response = s3.generate_presigned_url('put_object', Params=s3Params, ExpiresIn=3600, HttpMethod="PUT")
except Exception as e:
raise IOError(e)
return {
'statusCode': 200,
'body': {
'file_path': file_path,
'url': s3_response
}
}
当我尝试上传一个像这样卷曲的mp4视频时,例如: curl-X PUT-F'data=@ch01_00000100055009702.mp4'https://redacted-bucket-instance.s3.amazonaws.com//video_uploads/a845a97f-a218-4815-a836-376e498a4334.mp4?AWSAccessKeyId=ASIAWZPXMJR5V7GEHUJJ
或者
数据二进制'@ch01_00000100055009702.mp4'https://redacted-bucket-instance.s3.amazonaws.com//video_uploads/a845a97f-a218-4815-a836-376e498a4334.mp4?AWSAccessKeyId=ASIAWZPXMJR5V7GEHUJJ
在这两种情况下,终端都关闭了...我在这里做错了什么?
(当然,这两个url都不是收到的,只是用于演示)
编辑
为url添加引号阻止了终端关闭,并给出了响应。(我猜有些角色需要转义)
现在我得到了这个错误:
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>ASIAWZPXMJR54PMEJVPQ</AWSAccessKeyId>
我应该在请求中添加标题以使其生效吗?
(我续订了预签名的网址,以确保它在测试期间有效)
我的解决方案是首先为url添加引号(如编辑中所述),并添加内容类型标题
-H "Content-Type:video/mp4"
接口说明 上传视频文件 API地址 POST /api/marker/1.0.0/uploadVideo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 场景GUID file string form 是 视频文件 响应字段说明 参数 类型 说明 mp4UploadPath String 视频文件上传地址 响应成功示例 { "
用户通过视频上传、管理视频、获取代码,实现本地视频在制定网站播放。 2.1视频上传 进入视频页面,点击上传视频 按钮,在弹出的页面点击添加视频 : 1)选择视频“分类”,添加视频“标签”(选填); 2)点击【添加视频】或者【选择文件并上传】按钮选择本地一个或多个视频,点击确认即开始视频上传;或者在本地选择一个或多个视频,将视频拖拽到视频上传区,即可进行视频上传; 3)上传过程中点击视频上传或者取消
我正在使用数据移动库跟踪传输数据,以便将视频(mp4)从本地计算机上载到Azure Blob存储。 这是密码。 链接中提供的示例在GetBlob方法中没有以下行 我试过使用ContentType和不使用ContentType。在这两种情况下,文件似乎都已上载到Blob。唯一的区别似乎是ContentType,如下图所示。 问题是,在尝试下载任何文件时,它导致了一个警告错误,之后两个文件都没有播放,
Spark API 中所有的 Flash 接口需要 Flash 插件的版本在 10.1 以上才有效,使用前请确保 Flash 插件版本符合要求。 在上传视频的过程中,不用与 Spark 平台进行 HTTP 通信,使用 JavaScript 和 Spark 平台提供的 Flash 进行交互即可完成。关于如何在网页中嵌入 Flash 以及如何和 Flash 进行交互,请参阅附录 2。上传接口用到的所有
我正在尝试通过YouTube数据API v3将视频上传到多个频道。 当我将视频上传到主默认频道时,我可以正确地做到这一点,但是当我们尝试将它们上传到同一Youtube帐户的另一个频道时,却无法做到(因此OAuth2凭据应该是有效的)。 根据文档,在调用endpoint时,我必须将以下参数传递给API:onBehalfOfContentOwnerChannel和onBehalfOfContentOw
我正在尝试通过谷歌应用引擎将一个大视频上传到谷歌云存储中。 我遵循了这篇文章中的原则,这篇文章提到了上传一个大的电子表格。在GCP应用引擎中无法将大文件上传到Python+Flask 这是我的后端代码 这是我的前端代码。