Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用AmazonS3获取客户图像和缩略图_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services 使用AmazonS3获取客户图像和缩略图

Amazon web services 使用AmazonS3获取客户图像和缩略图,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,我在Lambda支持页面上看到了一些脚本示例,可以在上传图像时在单独的存储桶中创建缩略图。但我正在考虑使用S3为多个客户上传客户图像文件。我们可能会使用dropzone.js之类的东西来处理上传,我已经构建了一个可以上传到现有bucket的工作示例。 但由于我们将处理多个客户,我想知道当与S3结合使用时,处理不同客户文件的最佳实践是什么,尤其是需要向客户显示缩略图时 我注意到Lambda解决方案似乎使用了一个预配置的bucket,包括运行脚本所需的所有权限和事件触发器。我对node.js不太熟悉

我在Lambda支持页面上看到了一些脚本示例,可以在上传图像时在单独的存储桶中创建缩略图。但我正在考虑使用S3为多个客户上传客户图像文件。我们可能会使用dropzone.js之类的东西来处理上传,我已经构建了一个可以上传到现有bucket的工作示例。 但由于我们将处理多个客户,我想知道当与S3结合使用时,处理不同客户文件的最佳实践是什么,尤其是需要向客户显示缩略图时

我注意到Lambda解决方案似乎使用了一个预配置的bucket,包括运行脚本所需的所有权限和事件触发器。我对node.js不太熟悉,在Java或python方面做得很少,而且我对aws环境还不熟悉

我是否应该为每个客户创建一个新的存储桶?我可以吗?每次为新客户创建新bucket时,是否必须添加新的lambda create缩略图权限/事件触发器

有更好的方法吗

我还想知道(node.js和aws都是新手)仅在请求时构建缓存缩略图有多困难,而不是在上传文件时尝试构建缓存缩略图


SW

您可以对包含每个客户/用户缩略图图像的每个子文件夹使用相同的bucket(您可以使用${user\u id}或类似名称命名每个文件夹)

工作流程可以是

  • 完整图像从您的UI(dropzone.js或其他任何内容)上传到S3的客户子文件夹
  • 上传成功后。使用S3对象创建事件触发Lambda处理并生成缩略图。(将其放入缩略图子文件夹 dr是一种选择)。
    Ex:
    你的新水桶
    |
    ----顾客1
    |
    ___图像1.png
    ___图像2.jpg
    ___缩略图
    |
    ___图像1.png
    ___图像2.jpg
    

  • 您可以对包含每个客户/用户缩略图图像的每个子文件夹使用相同的bucket(您可以使用${user\u id}或类似名称命名每个文件夹)

    工作流程可以是

  • 完整图像从您的UI(dropzone.js或其他任何内容)上传到S3的客户子文件夹
  • 上传成功后。使用S3对象创建事件触发Lambda处理并生成缩略图。(将其放入缩略图子文件夹 dr是一种选择)。
    Ex:
    你的新水桶
    |
    ----顾客1
    |
    ___图像1.png
    ___图像2.jpg
    ___缩略图
    |
    ___图像1.png
    ___图像2.jpg
    

  • 关于客户和图像,您的业务要求是什么?每个客户是否都有自己的图像集,这些图像应该只能由一个客户访问?图像本身是否应该对任何知道URL的人都可以访问,或者您是否希望确保它们仅对图像“所有者”可用?您的客户将如何使用这些图像?他们是从自己的网站引用这些图像,还是这些图像仅用于您的应用程序?请随意编辑您的问题,以提供更多详细信息。是的,每位客户只能访问自己的图像。大文件通常是打印时可能达到的最高分辨率。它们应该是“完成”的形式,这样客户就不需要经常看到完整的分辨率,但缩略图大小用于购物车预览、样张等。您对客户和图像的业务要求是什么?每个客户是否都有自己的图像集,这些图像应该只能由一个客户访问?图像本身是否应该对任何知道URL的人都可以访问,或者您是否希望确保它们仅对图像“所有者”可用?您的客户将如何使用这些图像?他们是从自己的网站引用这些图像,还是这些图像仅用于您的应用程序?请随意编辑您的问题,以提供更多详细信息。是的,每位客户只能访问自己的图像。大文件通常是打印时可能达到的最高分辨率。它们应该是“完成”形式,这样客户就不需要经常看到完整分辨率,但缩略图大小用于购物车预览、校样等。如何限制缩略图大小,使给定客户只能看到其图像的上下文?首先,确保您的存储桶不可公开访问。最好的解决方案可能是与AWS Cognito集成(需要用户登录),获得临时凭证(登录成功后),并使用它从用户浏览器上传到S3。(带有AWS SDK的javascript代码)。我假设,由于我们将通过web服务器显示缩略图,我可以设置服务器的权限,然后限制服务器本身使用这些权限向哪个用户显示的内容?我不认为客户直接需要访问AWS上的全尺寸图像,因为他们从一开始就上传了这些图像。您如何限制它,使给定的客户只能看到其图像的上下文?首先,确保您的存储桶不可公开访问。最好的解决方案可能是与AWS Cognito集成(需要用户登录),获得临时凭证(登录成功后),并使用它从用户浏览器上传到S3。(带有AWS SDK的javascript代码)。我假设,由于我们将通过web服务器显示缩略图,我可以设置服务器的权限,然后限制服务器本身使用这些权限向哪个用户显示的内容?我不认为客户直接需要访问AWS上的全尺寸图像,因为他们从一开始就上传了这些图像。