File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22from io import FileIO
33from requests import utils
44from .result import Result
5+ from .upload_io import UploadIO
56
67def detect (resource ):
7- if 'filename' in dir (resource ):
8+ if isinstance (resource , UploadIO ):
9+ return resource .file_ext
10+ elif 'filename' in dir (resource ):
811 path = resource .filename
912 elif isinstance (resource , FileIO ):
1013 path = resource .name
Original file line number Diff line number Diff line change @@ -5,25 +5,28 @@ class UploadIO:
55 def __init__ (self , io , filename = None ):
66 self .io = io
77 self ._filename = filename
8- self ._file_id = None
8+ self ._result = None
99
1010 @property
1111 def file_id (self ):
12- if self ._file_id is None :
13- self ._file_id = self .__upload ()
12+ return self .__result ['FileId' ]
1413
15- return self ._file_id
14+ @property
15+ def file_ext (self ):
16+ return self .__result ['FileExt' ]
1617
1718 @property
18- def filename (self ):
19+ def __result (self ):
20+ if self ._result is None :
21+ self ._result = convertapi .client .upload (self .io , self .__build_filename ())
22+
23+ return self ._result
24+
25+ def __build_filename (self ):
1926 if self ._filename :
2027 return self ._filename
2128
2229 if 'name' in dir (self .io ):
2330 return os .path .basename (self .io .name )
2431
2532 raise 'Filename must be provided for non File resources'
26-
27- def __upload (self ):
28- result = convertapi .client .upload (self .io , self .filename )
29- return result ['FileId' ]
Original file line number Diff line number Diff line change @@ -23,6 +23,10 @@ def test_convert_file(self):
2323 assert result .save_files (tempfile .gettempdir ())
2424 assert result .conversion_cost > 0
2525
26+ def test_convert_file_url (self ):
27+ result = convertapi .convert ('pdf' , { 'File' : 'https://cdn.convertapi.com/cara/testfiles/document.docx?test=1' })
28+ assert result .conversion_cost > 0
29+
2630 def test_convert_url (self ):
2731 result = convertapi .convert ('pdf' , { 'Url' : 'http://convertapi.com' })
2832 assert result .conversion_cost > 0
You can’t perform that action at this time.
0 commit comments