77import logging
88import os
99import tempfile
10-
10+ import posixpath
1111import requests
1212from requests_toolbelt .multipart .encoder import MultipartEncoder
1313
@@ -43,7 +43,7 @@ def get_download_url(connector, client, fileid, intermediatefileid=None, ext="")
4343 if not intermediatefileid :
4444 intermediatefileid = fileid
4545
46- url = '%s/ api/files/%s?key=%s' % (client . host , intermediatefileid , client .key )
46+ url = posixpath . join ( client . host , ' api/files/%s?key=%s' % (intermediatefileid , client .key ) )
4747 return url
4848
4949
@@ -65,7 +65,7 @@ def download(connector, client, fileid, intermediatefileid=None, ext=""):
6565 if not intermediatefileid :
6666 intermediatefileid = fileid
6767
68- url = '%s/ api/files/%s?key=%s' % (client . host , intermediatefileid , client .key )
68+ url = posixpath . join ( client . host , ' api/files/%s?key=%s' % (intermediatefileid , client .key ) )
6969 result = connector .get (url , stream = True , verify = connector .ssl_verify if connector else True )
7070
7171 (inputfile , inputfilename ) = tempfile .mkstemp (suffix = ext )
@@ -89,7 +89,7 @@ def download_info(connector, client, fileid):
8989 fileid -- the file to fetch metadata of
9090 """
9191
92- url = '%s/ api/files/%s/metadata?key=%s' % (client . host , fileid , client .key )
92+ url = posixpath . join ( client . host , ' api/files/%s/metadata?key=%s' % (fileid , client .key ) )
9393
9494 # fetch data
9595 result = connector .get (url , stream = True , verify = connector .ssl_verify if connector else True )
@@ -121,7 +121,7 @@ def download_metadata(connector, client, fileid, extractor=None):
121121 """
122122
123123 filterstring = "" if extractor is None else "&extractor=%s" % extractor
124- url = '%s/ api/files/%s/metadata.jsonld?key=%s%s' % (client . host , fileid , client .key , filterstring )
124+ url = posixpath . join ( client . host , ' api/files/%s/metadata.jsonld?key=%s%s' % (fileid , client .key , filterstring ) )
125125
126126 # fetch data
127127 result = connector .get (url , stream = True , verify = connector .ssl_verify if connector else True )
@@ -137,7 +137,7 @@ def delete(connector, client, fileid):
137137 client -- ClowderClient containing authentication credentials
138138 fileid -- the dataset to delete
139139 """
140- url = "%s/ api/files/%s?key=%s" % (client . host , fileid , client .key )
140+ url = posixpath . join ( client . host , " api/files/%s?key=%s" % (fileid , client .key ) )
141141
142142 result = requests .delete (url , verify = connector .ssl_verify if connector else True )
143143 result .raise_for_status ()
@@ -155,7 +155,7 @@ def submit_extraction(connector, client, fileid, extractorname):
155155 extractorname -- registered name of extractor to trigger
156156 """
157157
158- url = "%s/ api/files/%s/extractions?key=%s" % (client . host , fileid , client .key )
158+ url = posixpath . join ( client . host , " api/files/%s/extractions?key=%s" % (fileid , client .key ) )
159159
160160 result = connector .post (url ,
161161 headers = {'Content-Type' : 'application/json' },
@@ -229,7 +229,7 @@ def upload_metadata(connector, client, fileid, metadata):
229229 connector .message_process ({"type" : "file" , "id" : fileid }, "Uploading file metadata." )
230230
231231 headers = {'Content-Type' : 'application/json' }
232- url = '%s/ api/files/%s/metadata.jsonld?key=%s' % (client . host , fileid , client .key )
232+ url = posixpath . join ( client . host , ' api/files/%s/metadata.jsonld?key=%s' % (fileid , client .key ) )
233233 result = connector .post (url , headers = headers , data = json .dumps (metadata ),
234234 verify = connector .ssl_verify if connector else True )
235235
@@ -255,7 +255,7 @@ def upload_preview(connector, client, fileid, previewfile, previewmetadata=None,
255255 headers = {'Content-Type' : 'application/json' }
256256
257257 # upload preview
258- url = '%s/ api/previews?key=%s' % ( client . host , client .key )
258+ url = posixpath . join ( client . host , ' api/previews?key=%s' % client .key )
259259 with open (previewfile , 'rb' ) as filebytes :
260260 # If a custom preview file MIME type is provided, use it to generate the preview file object.
261261 if preview_mimetype is not None :
@@ -269,13 +269,13 @@ def upload_preview(connector, client, fileid, previewfile, previewmetadata=None,
269269
270270 # associate uploaded preview with orginal file
271271 if fileid and not (previewmetadata and 'section_id' in previewmetadata and previewmetadata ['section_id' ]):
272- url = '%s/ api/files/%s/previews/%s?key=%s' % (client . host , fileid , previewid , client .key )
272+ url = posixpath . join ( client . host , ' api/files/%s/previews/%s?key=%s' % (fileid , previewid , client .key ) )
273273 result = connector .post (url , headers = headers , data = json .dumps ({}),
274274 verify = connector .ssl_verify if connector else True )
275275
276276 # associate metadata with preview
277277 if previewmetadata is not None :
278- url = '%s/ api/previews/%s/metadata?key=%s' % (client . host , previewid , client .key )
278+ url = posixpath . join ( client . host , ' api/previews/%s/metadata?key=%s' % (previewid , client .key ) )
279279 result = connector .post (url , headers = headers , data = json .dumps (previewmetadata ),
280280 verify = connector .ssl_verify if connector else True )
281281
@@ -295,7 +295,7 @@ def upload_tags(connector, client, fileid, tags):
295295 connector .message_process ({"type" : "file" , "id" : fileid }, "Uploading file tags." )
296296
297297 headers = {'Content-Type' : 'application/json' }
298- url = '%s/ api/files/%s/tags?key=%s' % (client . host , fileid , client .key )
298+ url = posixpath . join ( client . host , ' api/files/%s/tags?key=%s' % (fileid , client .key ) )
299299 result = connector .post (url , headers = headers , data = json .dumps (tags ),
300300 verify = connector .ssl_verify if connector else True )
301301
@@ -311,7 +311,7 @@ def upload_thumbnail(connector, client, fileid, thumbnail):
311311 """
312312
313313 logger = logging .getLogger (__name__ )
314- url = '%s/ api/fileThumbnail?key=%s' % ( client . host , client .key )
314+ url = posixpath . join ( client . host , ' api/fileThumbnail?key=%s' % client .key )
315315
316316 # upload preview
317317 with open (thumbnail , 'rb' ) as inputfile :
@@ -322,7 +322,7 @@ def upload_thumbnail(connector, client, fileid, thumbnail):
322322 # associate uploaded preview with original file/dataset
323323 if fileid :
324324 headers = {'Content-Type' : 'application/json' }
325- url = '%s/ api/files/%s/thumbnails/%s?key=%s' % (client . host , fileid , thumbnailid , client .key )
325+ url = posixpath . join ( client . host , ' api/files/%s/thumbnails/%s?key=%s' % (fileid , thumbnailid , client .key ) )
326326 connector .post (url , headers = headers , data = json .dumps ({}), verify = connector .ssl_verify if connector else True )
327327
328328 return thumbnailid
@@ -352,7 +352,7 @@ def upload_to_dataset(connector, client, datasetid, filepath, check_duplicate=Fa
352352 if filepath .startswith (connector .mounted_paths [source_path ]):
353353 return _upload_to_dataset_local (connector , client , datasetid , filepath )
354354
355- url = '%s/ api/uploadToDataset/%s?key=%s' % (client . host , datasetid , client .key )
355+ url = posixpath . join ( client . host , ' api/uploadToDataset/%s?key=%s' % (datasetid , client .key ) )
356356
357357 if os .path .exists (filepath ):
358358 filename = os .path .basename (filepath )
@@ -381,7 +381,7 @@ def _upload_to_dataset_local(connector, client, datasetid, filepath):
381381 """
382382
383383 logger = logging .getLogger (__name__ )
384- url = '%s/ api/uploadToDataset/%s?key=%s' % (client . host , datasetid , client .key )
384+ url = posixpath . join ( client . host , ' api/uploadToDataset/%s?key=%s' % (datasetid , client .key ) )
385385
386386 if os .path .exists (filepath ):
387387 # Replace local path with remote path before uploading
0 commit comments