如何通过python eve将图像上传到一些外部存储服务器,例如S3?
我知道我们现在可以将媒体类型字段上传/发布到如何通过python eve将图像上传到一些外部存储服务器,例如S3?,python,upload,flask,eve,Python,Upload,Flask,Eve,我知道我们现在可以将媒体类型字段上传/发布到pythoneverest-API框架,它将存储在mongodb中。有没有办法更改这些媒体的存储? 例如远程存储服务器,例如亚马逊S3?所以我们只在mongodb中存储图像的URL而不是整个图像 当存储在GridFS上时,您还可以提供自己的MediaStorage子类,该子类可以存储在任何您想存储的地方(文件系统、S3等) 像这样的东西可以达到目的: from eve.io.media import MediaStorage class Amazon
pythoneverest-API框架
,它将存储在mongodb
中。有没有办法更改这些媒体的存储?
例如远程存储服务器,例如亚马逊S3?所以我们只在mongodb中存储图像的URL而不是整个图像 当存储在GridFS上时,您还可以提供自己的MediaStorage
子类,该子类可以存储在任何您想存储的地方(文件系统、S3等)
像这样的东西可以达到目的:
from eve.io.media import MediaStorage
class AmazonS3MediaStorage(MediaStorage):
""" Your actual implementation """
pass
app = Eve(media=AmazonS3MediaStorage)
if __name__ == '__main__':
app.run()
查看实际类以了解实施细节和/或查看实际类以供参考。@JohnZ如果您提出了S3
MediaStorage
类并有兴趣共享,请与我联系,我们可以将其添加到Eve repo中,或者至少,做一个扩展。我正在尝试实现一个FS媒体存储(只是为了学习),出现了两件事:1-总是在put之后调用get,2-我在创建时收到“resourceWarning:unclosed file”。我应该返回一个流或类似的东西吗?我已经设法使用S3创建了一个MediaStorage。这是我的代码:@gcw nice,你把它重构成一个独立的包怎么样?然后它可以加入官方。当然,让我们这样做。我将检查如何正确包装。