Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Aws lambda AWS Lambda函数中的Mime类型检查_Aws Lambda - Fatal编程技术网

Aws lambda AWS Lambda函数中的Mime类型检查

Aws lambda AWS Lambda函数中的Mime类型检查,aws-lambda,Aws Lambda,我创建了一个lambda函数,当上传一个文件到S3 bucket时会触发它。我想使用mime类型检查来检查lambda函数中上传文件的类型。我知道我们可以使用contentType,但它只会检查我猜的文件扩展名,如果上传的文件有错误的扩展名,则无法确定确切的文件类型。在lambda函数中是否有检查上传文件mime类型的方法?请提供样本代码或任何参考,如果有 谢谢,对于Python,有两个库可以检测文件的MimeType: mimetypes可以通过文件名(扩展名)检测Mime类型 magic可

我创建了一个lambda函数,当上传一个文件到S3 bucket时会触发它。我想使用mime类型检查来检查lambda函数中上传文件的类型。我知道我们可以使用contentType,但它只会检查我猜的文件扩展名,如果上传的文件有错误的扩展名,则无法确定确切的文件类型。在lambda函数中是否有检查上传文件mime类型的方法?请提供样本代码或任何参考,如果有


谢谢,

对于Python,有两个库可以检测文件的MimeType:

  • mimetypes可以通过文件名(扩展名)检测Mime类型
  • magic可以通过文件内容检测Mime类型
Python示例代码

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类型
Python示例代码

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的响应。