File tree Expand file tree Collapse file tree 3 files changed +20
-10
lines changed
Expand file tree Collapse file tree 3 files changed +20
-10
lines changed 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