Javascript 如何在AWS lambda代码中为S3指定目录、权限和创建子目录?

Javascript 如何在AWS lambda代码中为S3指定目录、权限和创建子目录?,javascript,node.js,aws-lambda,Javascript,Node.js,Aws Lambda,我正在实现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

我正在实现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代码)完成这些工作


非常感谢

如S3文档中所述:

AmazonS3控制台将所有具有正斜杠“/”字符的对象作为键名中的最后一个(尾随)字符作为文件夹处理,例如examplekeyname/。您不能使用AmazonS3控制台上载带有尾随“/”字符的键名的对象但是,通过使用AWS CLI、AWS SDK或REST API,可以使用Amazon S3 API上载以“/”结尾命名的对象。


至于权限,API提供了putObjectAcl函数,该函数允许在放置对象时定义要使用的ACL。

首先是文档。其次,您误解了S3的工作原理。S3中没有文件夹/目录(尽管它提供了它们的假象);参见@404本页说明:
API版本:2006-03-01
您确定这是最新版本吗?是的,这是最新版本。请参阅:“AmazonS3API的当前版本是2006-03-01”@404 OK,那么它似乎是一个非常有用的书签URL。谢谢