簡體   English   中英

使用 aws lambda 上傳/下載圖片

[英]Image upload/download using aws lambda

我正在嘗試創建一個 lambda 函數,它接受一個圖像作為多部分對象,然后進行一些處理並將其上傳到 s3 存儲桶,並向用戶提供一些響應。

我找到了一些如何進行的示例,但是我不明白我是否必須創建兩個 lambda 函數並上傳單獨的 jars 或者可以以不同的方式完成。

到目前為止,我有解析多部分並上傳到 s3 的服務,我的問題是如何使用 aws lambdas,謝謝你們

public String uploadFile(MultipartFile multipartFile) {
        String fileUrl = "";
        try {
            File file = convertMultiPartToFile(multipartFile);
            String fileName = generateFileName(multipartFile);
            fileUrl = endpointUrl + "/" + bucketName + "/" + fileName;
            uploadFileTos3bucket(fileName, file);
        } catch (Exception e) {
           throw new RuntimeException(e);
        }
        return fileUrl;
    }

    private File convertMultiPartToFile(MultipartFile file){
        File convFile = new File(file.getOriginalFilename());
        try {
            FileOutputStream fos = new FileOutputStream(convFile);
            fos.write(file.getBytes());
            fos.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return convFile;
    }

    private String generateFileName(MultipartFile multiPart) {
        return new Date().getTime() + "-" + multiPart.getOriginalFilename().replace(" ", "_");
    }

    private void uploadFileTos3bucket(String fileName, File file) {
        s3client.putObject(new PutObjectRequest(bucketName, fileName, file)
                .withCannedAcl(CannedAccessControlList.PublicRead));
    }

我建議您可以簡單地使用一個 lambda 函數,該函數應該與 api 網關端點集成。 因此,用戶可以使用需要上傳到 S3 的文件調用端點(post),然后從 lambda 函數中您可以完成其余的工作(處理 + 上傳到 s3),然后將一些響應返回給用戶。

可能是一個起點。

獲取上傳文件的 s3 URL:

s3Client.getUrl("your_bucket_name", "your_file_key").toExternalForm();

是使用 Lambda 調整 S3 中圖像大小的另一個示例。 雖然它是 JS 代碼,並且只使用一個 Lambda 函數。

暫無
暫無

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

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