2016-07-30 23 views
2

我試圖在Flask應用程序的瀏覽器中返回PDF。我正在使用AWS S3將文件和boto3作爲SDK與S3進行交互。到目前爲止我的代碼是:在Flask中從S3返回一個PDF

s3 = boto3.resource('s3', aws_access_key_id=settings.AWS_ACCESS_KEY, 
       aws_secret_access_key=settings.AWS_SECRET_KEY) 
file = s3.Object(settings.S3_BUCKET_NAME, 'test.pdf')).get() 
response = make_response(file) 
response.headers['Content-Type'] = 'application/pdf' 
return response 

我能夠使用boto3成功地檢索從S3的對象file,當然,這是一本字典,其中我不知道如何將PDF從

返回
+1

那麼什麼是在字典?你有沒有嘗試調查你正在使用的數據? – davidism

+0

你有這個實現嗎?每次有人請求文件時,它都必須將文件從s3下載到服務器中? – patito

回答

2

事實證明,boto3沒有readLines()方法,但他們有一個read()方法,所以它的工作做:

response = make_response(file['Body'].read()) 
response.headers['Content-Type'] = 'application/pdf' 
return response