Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/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
如何在Python中使用S3存储桶和Boto3将图像上载到MongoDB_Python_Mongodb_Amazon Web Services_Amazon S3_Boto3 - Fatal编程技术网

如何在Python中使用S3存储桶和Boto3将图像上载到MongoDB

如何在Python中使用S3存储桶和Boto3将图像上载到MongoDB,python,mongodb,amazon-web-services,amazon-s3,boto3,Python,Mongodb,Amazon Web Services,Amazon S3,Boto3,我正在开发一个Python应用程序,其中所需的功能是使用网络摄像头接收实时视频提要,并根据条件是否为真,单击图像并将其上载到数据库 我使用的数据库是MongoDB。据我所知,将图像直接上传到数据库并不是正确的方法。所以,我想做的是: 从网络摄像头中单击图像 图像被上传到一个S3存储桶(来自同一个Python脚本,所以可能使用boto3) 检索上传图像的URL(这似乎是棘手的部分) 然后这个URL和其他一些细节被上传到数据库。(这是最简单的部分) 我理想的工作流程是将图像上传到S3存储桶,检索UR

我正在开发一个Python应用程序,其中所需的功能是使用网络摄像头接收实时视频提要,并根据条件是否为真,单击图像并将其上载到数据库

我使用的数据库是MongoDB。据我所知,将图像直接上传到数据库并不是正确的方法。所以,我想做的是:

  • 从网络摄像头中单击图像
  • 图像被上传到一个S3存储桶(来自同一个Python脚本,所以可能使用boto3)
  • 检索上传图像的URL(这似乎是棘手的部分)
  • 然后这个URL和其他一些细节被上传到数据库。(这是最简单的部分)
  • 我理想的工作流程是将图像上传到S3存储桶,检索URL,然后将URL上传到数据库,所有这些都在一个.py脚本中完成

    我的问题是:如何将图像上传到S3存储桶,然后在Python脚本中通过bot3检索其公共URL


    我还欢迎任何关于将图像存储到MongoDB的更好方法/策略的建议。我在一些页面上看到GridFS可能是一种很好的方法,但不建议经常上传图像(事实上,使用AWS是更可取的方式)。

    您不需要“检索”公共url,上传时可以指定s3对象的bucket和名称,因此,您已经拥有了所需的信息,可以知道一旦上传,公共url将是什么,这不像s3在上传后为您的对象分配一个新的唯一名称。

    您不需要“检索”公共url,您可以在上传时指定s3对象的bucket和名称,因此,您已经掌握了需要知道的信息,一旦上传,公共url将是什么,这与s3在上传后为您的对象分配新的唯一名称不同。

    如果您知道s3存储桶和名称,则可以解释s3对象的url:

    https://{bucket}.s3.{region}.amazonaws.com/{key}

    如果您使用的是Python,那么使用boto3将是上传文件的最简单方法。
    请参阅我关于如何上传文件的不同方法的另一个答案:

    如果您知道S3存储桶和名称,则可以解释S3对象的URL:

    https://{bucket}.s3.{region}.amazonaws.com/{key}

    如果您使用的是Python,那么使用boto3将是上传文件的最简单方法。
    关于如何上传文件的不同方法,请参见我的另一个答案:

    这很有帮助!我会继续的,谢谢!如果我在路上遇到任何问题,我会给你回复。这很有帮助!我会继续的,谢谢!如果我在路上遇到任何麻烦,我会给你回电话的。