微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试从 sftp-client 上传到 AWS Transfer 时出现访问被拒绝错误

如何解决尝试从 sftp-client 上传到 AWS Transfer 时出现访问被拒绝错误

我正在 AWS 上设置 SFTP 服务器。 我正在使用 WinSCP 对其进行测试,文件正在传输到 S3,但出现了一些错误

The server does not support the operation.
Error code: 8
Error message from server (US-ASCII): SETSTAT unsupported

在我的 lambda 中,我有这个:

exports.lambdaHandler = async (event,context) => {

    let response

    try {
        await sftp.connect({
            host: "myhost",port: myport,username: process.env.SFTP_USERNAME,privateKey: mykey
        })

        let dst = fs.createWriteStream('/tmp/csvStream.csv');

        await sftp.get('/share/csvTest.csv',dst);
        await sftp.end()

        let fileContent = fs.readFileSync('/tmp/csvStream.csv')

        const params = {
            Bucket: "my-bucket",Key: 'csvTest.csv',Body: fileContent,ContentType: 'text/csv',}

        let s3UploadPromise = new Promise((resolve,reject) => {
            S3.putObject(params,function (error,data) {
                if (error) {
                    reject(error);
                }
                resolve(`File was Uploaded Successfully. csvTest.csv`)

            });
        })

        let result = await s3UploadPromise

        // const ret = await axios(url);
        response = {
            'statusCode': 200,'body': JSON.stringify({
                message: result,// location: ret.data.trim()
            })
        }
    } catch (err) {
        console.log(err);
        return err;
    }

    return response
};

我得到:

Invoking app.lambdaHandler (nodejs14.x)
Skip pulling image and use local one: amazon/aws-sam-cli-emulation-image-nodejs14.x:rapid-1.22.0.

Mounting F:\GingerBlack\DataRetriever\Retriever as /var/task:ro,delegated inside runtime container
START RequestId: d1a73d3a-04d7-4b6b-9c95-5bd657211988 Version: $LATEST
} custom: trueeam.Transform._write (internal/streams/transform.js:193:12) {3:15)7:17)99:18) Access denied /share/csvTest.csv
END RequestId: d1a73d3a-04d7-4b6b-9c95-5bd657211988
REPORT RequestId: d1a73d3a-04d7-4b6b-9c95-5bd657211988  Init Duration: 0.13 ms  Duration: 5323.93 ms    Billed Duration: 5400 ms        Memory Size: 128 MB     Max Memory Used: 128 MB
{"code":3,"custom":true}

并且文件没有被传输。

我的 s3、服务器和 IAM 角色现在允许一切,因为我只想测试它,但不确定拒绝访问的来源。

谢谢

解决方法

我的 sftp.get 指向了我之前在本地运行时设置的错误位置。我只是放了 ./csvTest.csv 来修复它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。