def create_upload(self, project_id, filename, content_type, size,
                      hash_value, hash_alg, storage_provider_id=None, chunked=True):
        """
        Post to /projects/{project_id}/uploads to create a uuid for uploading chunks.
        NOTE: The optional hash_value and hash_alg parameters are being removed from the DukeDS API.
        :param project_id: str uuid of the project we are uploading data for.
        :param filename: str name of the file we want to upload
        :param content_type: str mime type of the file
        :param size: int size of the file in bytes
        :param hash_value: str hash value of the entire file
        :param hash_alg: str algorithm used to create hash_value
        :param storage_provider_id: str optional storage provider id
        :param chunked: is the uploaded file made up of multiple chunks. When False a single upload url is returned.
            For more see https://github.com/Duke-Translational-Bioinformatics/duke-data-service/blob/develop/api_design/DDS-1182-nonchucked_upload_api_design.md
        :return: requests.Response containing the successful result
        """
        data = {
            "name": filename,
            "content_type": content_type,
            "size": size,
            "hash": {
                "value": hash_value,
                "algorithm": hash_alg
            },
            "chunked": chunked,
        }
        if storage_provider_id:
            data['storage_provider'] = {'id': storage_provider_id}
        return self._post("/projects/" + project_id + "/uploads", data)
Post to /projects/{project_id}/uploads to create a uuid for uploading chunks.
        NOTE: The optional hash_value and hash_alg parameters are being removed from the DukeDS API.
        :param project_id: str uuid of the project we are uploading data for.
        :param filename: str name of the file we want to upload
        :param content_type: str mime type of the file
        :param size: int size of the file in bytes
        :param hash_value: str hash value of the entire file
        :param hash_alg: str algorithm used to create hash_value
        :param storage_provider_id: str optional storage provider id
        :param chunked: is the uploaded file made up of multiple chunks. When False a single upload url is returned.
            For more see https://github.com/Duke-Translational-Bioinformatics/duke-data-service/blob/develop/api_design/DDS-1182-nonchucked_upload_api_design.md
        :return: requests.Response containing the successful result