Python 如何从AWS Lambda提供GIF、JPEG和PNG

Python 如何从AWS Lambda提供GIF、JPEG和PNG,python,flask,aws-lambda,Python,Flask,Aws Lambda,我正在使用AWS lambda创建一个函数,为小部件提供JS代码。 我还想提供一些图片。 到目前为止,我能够通过将数据转换为二进制数据来为SVG服务,但不知何故,它不适用于GIF、JPEG或PNG 我正在使用用于python的Flask框架。 下面是代码片段 def img(filename): ext = filename.split('.') if(len(ext) >= 2): ext = ext[1] else: ext =

我正在使用AWS lambda创建一个函数,为小部件提供JS代码。 我还想提供一些图片。 到目前为止,我能够通过将数据转换为二进制数据来为SVG服务,但不知何故,它不适用于GIF、JPEG或PNG

我正在使用用于python的Flask框架。 下面是代码片段

def img(filename):
    ext = filename.split('.')
    if(len(ext) >= 2):
        ext = ext[1]
    else:
        ext = ''
    if(ext == 'svg'):
        mime = 'image/svg+xml'
    elif(ext == 'gif'):
        mime = 'image/gif'
    else:
        mime = 'image/'+ext

    filename = 'src/img/'+filename

    if(os.path.isfile(filename)):
        with open(filename, 'rb') as bites:
            return send_file(io.BytesIO(bites.read()), mimetype=mime)
    else:
        return res({'error': True, 'msg': 'File not found'})

正如Daniel所建议的,在这种情况下,使用公共s3存储桶为文件提供服务是可行的,而且比我编写代码的方式简单得多。

为什么不将二进制资产存储在s3中并从那里提供服务呢?这很有效。我希望除了部署sls代码之外,什么都不做。