Aws lambda AWS Lambda函数中的Mime类型检查
我创建了一个lambda函数,当上传一个文件到S3 bucket时会触发它。我想使用mime类型检查来检查lambda函数中上传文件的类型。我知道我们可以使用contentType,但它只会检查我猜的文件扩展名,如果上传的文件有错误的扩展名,则无法确定确切的文件类型。在lambda函数中是否有检查上传文件mime类型的方法?请提供样本代码或任何参考,如果有Aws lambda AWS Lambda函数中的Mime类型检查,aws-lambda,Aws Lambda,我创建了一个lambda函数,当上传一个文件到S3 bucket时会触发它。我想使用mime类型检查来检查lambda函数中上传文件的类型。我知道我们可以使用contentType,但它只会检查我猜的文件扩展名,如果上传的文件有错误的扩展名,则无法确定确切的文件类型。在lambda函数中是否有检查上传文件mime类型的方法?请提供样本代码或任何参考,如果有 谢谢,对于Python,有两个库可以检测文件的MimeType: mimetypes可以通过文件名(扩展名)检测Mime类型 magic可
谢谢,对于Python,有两个库可以检测文件的MimeType:
- mimetypes可以通过文件名(扩展名)检测Mime类型
- magic可以通过文件内容检测Mime类型
import mimetypes # Included in AWS Lambda
import magic # Not included in AWS Lambda, needs to be a part of Lambda package
fileName = # File name, as a string
fileContent = # Content of the file, binary
mime = magic.Magic(mime=True)
contentType = mimetypes.guess_type(fileName)[0]
if contentType is None:
contentType = mime.from_buffer(fileContent)
上面的代码将首先尝试通过扩展检测mime类型,如果失败,则通过文件内容检测mime类型
示例Lambda函数,执行挖掘类型检测:对于Python,有两个库可以检测文件的MimeType:
- mimetypes可以通过文件名(扩展名)检测Mime类型
- magic可以通过文件内容检测Mime类型
import mimetypes # Included in AWS Lambda
import magic # Not included in AWS Lambda, needs to be a part of Lambda package
fileName = # File name, as a string
fileContent = # Content of the file, binary
mime = magic.Magic(mime=True)
contentType = mimetypes.guess_type(fileName)[0]
if contentType is None:
contentType = mime.from_buffer(fileContent)
上面的代码将首先尝试通过扩展检测mime类型,如果失败,则通过文件内容检测mime类型
示例Lambda函数,执行地雷类型检测:“我知道我们可以使用contentType进行此操作,但它只会检查文件扩展名,我猜”不是扩展名,它会检查上传时发送的
内容类型
头,这只与设置它时一样好。您必须在Lambda环境中下载该对象,以实际检查其MIME类型。感谢Michale的回复。“我知道我们可以使用contentType进行此操作,但它只检查文件扩展名,我猜”而不是扩展名,它将检查随上载发送的内容类型
头,这只和设定的一样好。您必须在Lambda环境中下载该对象,才能真正检查其MIME类型。感谢Michale的响应。