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 AWS使用s3 bucket将文件上载到特定用户_Amazon Web Services_Amazon S3_Aws Lambda_Amazon Cognito - Fatal编程技术网

Amazon web services AWS使用s3 bucket将文件上载到特定用户

Amazon web services AWS使用s3 bucket将文件上载到特定用户,amazon-web-services,amazon-s3,aws-lambda,amazon-cognito,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Cognito,大家好,我的社区 我没有这个问题的代码可以显示,我缺少很多关于AWS的知识,所以我甚至不知道要搜索或查找什么 这就是我想要实现的目标 用例: 用户注册 转到他/她的帐户 上载新的个人资料图片 传统Web服务器 您将上载具有用户id的文件。(来自以前的请求或会话) 这样,您可以为文件生成一个名称,将其存储在某个位置,并在数据库中引用该名称。不管你怎么决定。在新上传图像的末尾,src path位于数据库中并链接到用户 我正试图在AWS上实现同样的目标 这些是我认为我理解的事情 S3用于存储二进制

大家好,我的社区

我没有这个问题的代码可以显示,我缺少很多关于AWS的知识,所以我甚至不知道要搜索或查找什么

这就是我想要实现的目标

用例:

  • 用户注册
  • 转到他/她的帐户
  • 上载新的个人资料图片
传统Web服务器

您将上载具有用户id的文件。(来自以前的请求或会话)

这样,您可以为文件生成一个名称,将其存储在某个位置,并在数据库中引用该名称。不管你怎么决定。在新上传图像的末尾,src path位于数据库中并链接到用户

我正试图在AWS上实现同样的目标

这些是我认为我理解的事情

S3用于存储二进制/静态内容 AWs Cognito用于对用户进行身份验证,并且(我在这里不是很确定)相当于会话。 Lambda是一个只接受JSON的web服务

我应该如何使用这些工具来达到预期的效果

我没有代码可以尝试,如果有人能给我指出一个例子的方向,我会很乐意尝试,如果我还有其他问题,我会回到这里。 我只是不确定我是否有正确的想法,我是否在正确的轨道上。我一直在搜索,但是我找不到一个能够满足这个用例的例子


提前感谢。

您可以使用任何可用的身份验证机制,如Cognito或您自己的,在身份验证后,您可以创建S3 SignedUrl并直接将文件上载到S3 bucket

这是一种将文件上传到s3的安全方式

S3 bucket确实可以选择在实际文件名之前使用prefix,您可以使用它来分隔和维护与用户相关的文件

例如

2017/06/8/<user_id>/ is a kind of prefix information will give you the time.
2017/06/8//是一种前缀信息,会给你时间。
考虑到您的后端系统可能包括Java,以下是将文件上载到s3的步骤。

您需要编写一个web应用程序(就像传统的web服务器一样)。然后,您的web应用程序可以使用AWS服务

用户注册

用户将连接到您的web应用程序并执行您希望实现的任何注册过程。身份验证和用户存储可以使用AmazonCognito或您自己的应用程序逻辑和数据库来完成

进入他们的账户

同样,这是一个在web应用程序中导航的用户

上传个人资料图片

它们将上载到您的web应用程序。然后,您的应用程序可以将此图片存储在AmazonS3存储桶中。也可以将网页编码为,但您的web应用程序必须在网页后面创建动态代码才能实现这一点

一般性评论

上述所有任务与非AWS解决方案完全相同。但是,您可以利用各种AWS服务来提供帮助,例如Cognito和S3


您可以更进一步,使用AWS Lambda和AWS API Gateway编写完全无服务器的应用程序,但这是一个更困难的步骤。

要将文件上载到s3,您希望使用哪种后端类型?