簡體   English   中英

AWS Lambda拒絕文件上傳

[英]aws lambda reject file upload

我創建了以下aws lambda函數,並在目標存儲桶上的所有S3上傳事件上設置了觸發器。 該函數嘗試拒絕大於2000000字節的文件上傳。 記錄了錯誤消息,但是context.fail('upload rejected')或context.fail(new Error('upload rejected'))都沒有阻止失敗的上傳。 如何拒絕文件上傳,或者通常是拒絕或停止帶有AWS Lambda的事件?

//// nodejs aws lambda代碼://///

exports.handler = (event, context, callback) => {
    var MAX_FILE_SIZE = 2000000;
    var msg = '';
    console.log('Received event:', JSON.stringify(event, null, 2));
    if (event.Records && event.Records.length && event.Records.length>0 && event.Records[0].s3 && event.Records[0].s3.object
        && event.Records[0].s3.object.size && event.Records[0].s3.object.size > MAX_FILE_SIZE) {
        msg = 'File ' + event.Records[0].s3.object.key + ' rejected, file size ' + event.Records[0].s3.object.size 
            + ' is greater than ' + MAX_FILE_SIZE + ' bytes.';
        console.log(msg);
        var err = new Error(msg);
        callback(err, {'disposition':'STOP_RULE'});
        context.fail(err);
    } else {
        msg = 'Upload succeeded.';
        console.log(msg);
        callback(null, msg);
        context.succeed(msg);
    }

};

如果lambda由s3通知觸發,則無法執行此操作,這僅僅是因為在這種情況下,lambda不能以任何方式控制文件上傳。 簡稱為基於文件上傳進行一些處理。 如果要控制文件上傳,則應通過lambda函數進行上傳

在當前情況下,您實際可以做的是,如果看到文件大小超過要求的限制,則可以刪除文件,但不能阻止文件上傳

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM