【发布时间】:2019-10-10 12:59:41
【问题描述】:
我正在实现一个 AWS lambda 函数
(JavaScript、node.js 环境)
它使用如下调用:
const aws = require('aws-sdk');
const s3 = new aws.S3();
function work1(obj, cb_Work1) {
console.log(">>> Calling work");
s3.putObject({
Bucket: bucketName,
Key: 'test.txt',
Body: JSON.stringify(obj)
})
.promise()
.then(() => {
console.log('S3 -> UPLOAD SUCCESS');
work2(obj, (resp) => {
cb_Work1(resp);
});
})
.catch(e => {
console.log('S3 -> UPLOAD ERROR');
console.log(e);
cb_Work1({
error: e
});
});
}
所以这里Key 似乎是文件名。
但问题是我还没有找到s3.putObject 的详细文档,所以我不知道
1)如何指定目录名(不只是bucket名),
2) 如何定义我正在创建的文件的权限
3)在放文件等之前如何创建子目录等。
如何通过aws-sdk(来自 JavaScript,node.js 代码)来完成这些事情?
提前非常感谢。
【问题讨论】:
-
首先文档是here。其次,您误解了 S3 的工作原理。 S3 中没有文件夹/目录(尽管它提供了它们的错觉);见docs.aws.amazon.com/AmazonS3/latest/user-guide/…
-
@404 这个页面说:
API Version: 2006-03-01你确定这是最近的吗? -
是的,它是最新版本。见here:“Amazon S3 API 的当前版本是 2006-03-01”
-
@404 好的,那么它似乎是一个非常有用的书签 URL。谢谢。
标签: javascript node.js aws-lambda