benchmarking/bridge/upload_download_files_django.py (29 lines of code) (raw):

from __future__ import absolute_import, division, print_function, unicode_literals import os import requests from bridge.upload_download_files_base import UploadDownloadFilesBase from bridge.upload_download_files_base import registerUploadDownloadFiles from utils.custom_logger import getLogger from utils.utilities import requestsJson class UploadDownloadFilesDjango(UploadDownloadFilesBase): def __init__(self, args): super(UploadDownloadFilesDjango, self).__init__(args) self.server_addr = self.args.server_addr def upload(self, **kwargs): path = kwargs["file"] if self.server_addr: storage_addr = self.server_addr + "/upload/" getLogger().info("Uploading {} to {}".format(path, storage_addr)) filename = os.path.basename(path) with open(path, "rb") as f: result_json = requestsJson( storage_addr, files={"file": (filename, f.read())} ) url = "" if result_json["status"] == "success": url = os.path.join(self.server_addr, result_json["path"]) getLogger().info("File has been uploaded to {}".format(url)) return url def download(self, **kwargs): # Download is handled in django_file_downloader pass registerUploadDownloadFiles("django", UploadDownloadFilesDjango)