- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 react-s3-uploader
Node 包,它接受一个 signingUrl
来获取用于将对象存储到 S3 中的 signedUrl。
目前我已经配置了一个 lambda 函数(带有一个 API 网关端点)来生成这个 signedUrl。经过一番修改后,我让它开始工作,但我注意到我必须在我的 lambda 函数中定义 content-type
,如下所示:
var AWS = require('aws-sdk');
const S3 = new AWS.S3()
AWS.config.update({
region: 'us-west-2'
})
exports.handler = function(event, context) {
console.log('context, ', context)
console.log('event, ', event)
var params = {
Bucket: 'video-bucket',
Key: 'videoname.mp4',
Expires: 120,
ACL: 'public-read',
ContentType:'video/mp4'
};
S3.getSignedUrl('putObject', params, function (err, url) {
console.log('The URL is', url);
context.done(null, {signedUrl: url})
});
}
问题是我希望这个签名的 url 能够接受多种类型的视频文件,我已经尝试将 ContentType
设置为 video/*
,这不起作用。此外,因为这个 lambda 端点并不是实际进行上传的端点,所以我无法事先将文件类型传递给此函数。
最佳答案
您必须找到一种方法来发现文件类型并将其作为参数传递给 Lambda 函数。没有其他选择,在这里,使用预签名的 PUT
。
PUT
的请求签名过程没有提供通配符或多个/替代值。
关于node.js - S3.getSignedUrl 接受多种内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192068/
我需要获取“bucket/loads/:loadID”路径中所有文件的 URL。我能够在名为"file"的数组中获取这些文件。然后我过滤它(我得到 endFiles 数组)。现在我只需要一个名为 ur
我有存储触发功能,可以调整上传的图像大小并将其替换到存储中,然后更新数据库中的 URL }).then(() => { console.log('Original file d
我正在尝试使用 file.getSignedUrl()通过 Google Cloud Functions (Nodejs) 从 Firebase Storage 获取下载 URL。我在 Cloud F
我正在使用 react-s3-uploader Node 包,它接受一个 signingUrl 来获取用于将对象存储到 S3 中的 signedUrl。 目前我已经配置了一个 lambda 函数(带有
在 localhost 上工作正常,但在服务器上不工作。所有返回的 URL 都已经过期。 AccessDenied Request has expired 2016-04-26T09:44:22Z2
是否可以在 S3 对象的 getSignedUrl 操作上设置 access-control-allow-origin?我一直在寻找 aws 文档中的可用参数列表,但不清楚。 更新:假设我在名为“te
我成功生成了一个签名 url,然后我可以在有限的时间内使用它从我的 s3 存储桶下载资源。但是,我正在尝试在此处记录的参数中使用 ResponseContentDisposition 属性: http
我的 Firebase 存储 getSignedUrl()下载链接工作几天,然后停止工作。错误信息是 SignatureDoesNotMatch The request signature we ca
我对 AWS 比较陌生。我想要做的就是将图像从我的应用程序上传到 aws S3 并下载它以在应用程序的另一个页面中查看图像。上传成功,能够在S3中看到上传的图片。但无法下载它,因为它会抛出以下错误。
我有一些非常简单的代码来生成 S3 URL。我从 SDK 返回的 URL 只有 S3 的基本路径。它不包含任何其他内容。为什么会这样? var AWS = require('aws-sdk'); va
我正在生成一个预签名 URL,以便我可以将文件上传到 S3 存储桶。 var params = {Bucket: 'xxxxxxx', Key: 'key', Expires: 60}; var ur
我的问题是,当我将响应通过管道传输到前端时,Safari(似乎 IOS 上的所有浏览器都一样)不显示视频。但是,这些视频会在所有浏览器的 Android 和 win/linux 桌面上显示。 请注意,
通过过期的 URL 访问 S3 资源时,我试图优雅地处理 403。目前它返回一个 amz xml 错误页面。我上传了一个 403.html 资源,并认为我可以重定向到该资源。 存储桶资源是我的应用程序
我有一个 http onCall 云函数,我想返回一个 signedURL 以允许我将文件上传到云存储桶 Previous question 它一直告诉我权限被拒绝,但我看不出问题出在哪里。函数 GC
在尝试获取 getObject 的签名 URL 时,我从 aws-sdk 库收到以下错误: \node_modules\aws-sdk\lib\util.js:983 return str
这是我与问题相关的云函数代码片段: // Somewhere outside the function import * as nodedt from 'node-datetime' ... // I
这是我与问题相关的云函数代码片段: // Somewhere outside the function import * as nodedt from 'node-datetime' ... // I
我正在尝试创建一个签名 URL 以允许从 AWS S3 存储桶下载文件。对于我的 Node.JS lambda 函数,我向它传递一个文件名,它将创建一个签名 URL,然后我在客户端触发该 URL 以下
我在我的项目中遇到了一个奇怪的问题,我无法找到我做错了什么。我正在尝试将图像上传到我的博客,并且我正在使用 aws s3 配置来执行此操作。我相信我的配置是正确的,但以防万一我将它们添加到那里: 这里
我正在尝试获取一个预签名 URL 以将文件上传到 S3 存储桶。这是我的工作流程: 1。调用 Lambda -> 2.获取预签名 URL -> 3.使用文件命中 URL (PUT) 1。调用 Lamb
我是一名优秀的程序员,十分优秀!