这个错误是由于AWS Chalice应用程序中存在不一致的二进制支持引起的。解决方法是在应用程序中使用一致的二进制支持。具体而言,应该选择一个content_type作为应用程序的默认值,并确保所有其他content_type都有一个相应的二进制支持。以下是一个示例代码,演示如何解决此错误:
from chalice import Chalice
app = Chalice(app_name='myapp')
app.api.binary_types.append('application/octet-stream')
app.api.binary_types.append('application/pdf')
@app.route('/pdf')
def serve_pdf():
with open('/path/to/myfile.pdf', 'rb') as f:
binary_data = f.read()
return {'body': binary_data, 'headers': {'Content-Type': 'application/pdf', 'Content-Disposition': 'attachment;filename=myfile.pdf'}}
在上面的代码中,我们使用了两种content_type : application/octet-stream
和 application/pdf
,并为它们添加了二进制支持。在serve_pdf
函数中,我们使用了一个PDF文件,并将其返回为响应主体。响应头中包含Content-Type
和Content-Disposition
。这个应用程序现在将能够正常运行,因为我们已经在应用程序中使用了一致的二进制支持。