You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
958 B
Python
38 lines
958 B
Python
|
|
import io
|
|
|
|
import requests
|
|
|
|
from magic_pdf.data.io.base import IOReader, IOWriter
|
|
|
|
|
|
class HttpReader(IOReader):
|
|
|
|
def read(self, url: str) -> bytes:
|
|
"""Read the file.
|
|
|
|
Args:
|
|
path (str): file path to read
|
|
|
|
Returns:
|
|
bytes: the content of the file
|
|
"""
|
|
return requests.get(url).content
|
|
|
|
def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
|
|
"""Not Implemented."""
|
|
raise NotImplementedError
|
|
|
|
|
|
class HttpWriter(IOWriter):
|
|
def write(self, url: str, data: bytes) -> None:
|
|
"""Write file with data.
|
|
|
|
Args:
|
|
path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
|
|
data (bytes): the data want to write
|
|
"""
|
|
files = {'file': io.BytesIO(data)}
|
|
response = requests.post(url, files=files)
|
|
assert 300 > response.status_code and response.status_code > 199
|