22import traceback
33import json
44
5- from flask import request , Blueprint , jsonify
5+ from flask import request , Blueprint , jsonify , make_response
66from flask_restplus import Api , Resource , fields
77import iso8601
88from datetime import datetime , timedelta
@@ -260,7 +260,12 @@ class ExportAllResource(Resource):
260260 @api .doc (model = buckets_export )
261261 @copy_doc (ServerAPI .export_all )
262262 def get (self ):
263- return {"buckets" : app .api .export_all ()}, 200
263+ buckets_export = app .api .export_all ()
264+ payload = {"buckets" : buckets_export }
265+ response = make_response (json .dumps (payload ))
266+ filename = "aw-buckets-export.json"
267+ response .headers ["Content-Disposition" ] = "attachment; filename={}" .format (filename )
268+ return response
264269
265270
266271# TODO: Perhaps we don't need this, could be done with a query argument to /0/export instead
@@ -270,7 +275,11 @@ class BucketExportResource(Resource):
270275 @copy_doc (ServerAPI .export_bucket )
271276 def get (self , bucket_id ):
272277 bucket_export = app .api .export_bucket (bucket_id )
273- return {"buckets" : {bucket_export ["id" ]: bucket_export }}, 200
278+ payload = {"buckets" : {bucket_export ["id" ]: bucket_export }}
279+ response = make_response (json .dumps (payload ))
280+ filename = "aw-bucket-export_{}.json" .format (bucket_export ["id" ])
281+ response .headers ["Content-Disposition" ] = "attachment; filename={}" .format (filename )
282+ return response
274283
275284
276285@api .route ("/0/import" )
0 commit comments