amazon-web-services - 从 AWS-S3 下载文件到本地计算机文件系统
问题描述
我使用 api-gateway、aws-lambda 和 s3 存储桶编写了微服务。我目前能够读取 lambda 函数中的所有文件内容。但我想将文件从 s3 下载到本地文件系统。我尝试使用管道(本地文件路径),但它会引发有关路径的错误(未找到)。
const AWS = require('aws-sdk');
var s3 = new AWS.S3();
exports.handler = function(event, context, callback) {
var params = {
"Bucket": "bucketname",
"Key": "hello"
};
var readstream = s3.getObject(params).createReadStream();
readstream.on('data',(data) => {
console.log(data)
})
.on('end', () => {
return callback(null, "file read done")
})
.on('error',(e) => {
console.log("Error occured",e)
})
};
如何将文件下载到用户文件系统?
解决方案
如果您想允许用户下载文件但想在 lambda 中进行某些操作之前执行或生成 S3 对象的内容,那么您可以使用getSignedUrl。
它会创建临时 url,您可以将其返回给您的客户,他们可以下载它。在这种情况下,不需要在 S3 上运行 http 服务器。此外,它还支持 ssl 和恢复下载。
推荐阅读
- linux - TYK 仪表板和网关有效负载
- python - Python OpenCV solvePnP 转换为欧拉角
- excel - 将数据复制到下一个空单元格
- python - 获取 CondaHTTP 错误:尝试更新 anaconda 时 ssl 模块不可用
- arduino - Arduino——失去价值的全局变量
- sql - 如何将 2 个 ComboBoxes 连接到不同的表?
- python - Python:更改点子路径
- testing - 如何等待一个元素在 TestCafe 中消失?
- java - 处理来自最终用户的动态输入的设计问题
- go - 如何处理每小时关闭的 Bigtable 连接?