implemented to move or rename file/folder command mv

This commit is contained in:
2023-05-09 18:38:58 +09:00
parent e7197673fc
commit fd2238f5ca
3 changed files with 70 additions and 31 deletions

View File

@ -45,12 +45,14 @@ class FileApi(BaseApi):
url = self.ENTRYPOINT + file.id + "/"
token_check(self.connection)
if path is not None:
# update file body
try:
with open(path, mode="rb") as fp:
response = self._put(url, files={"file": fp})
except OSError:
raise UnexpectedException(f"Could not open `{path}` file.")
else:
# update metadata
data = {"name": file.name, "description": file.description}
response = self._put(url, data=data)
self._raise_response_error(response)
@ -64,7 +66,7 @@ class FileApi(BaseApi):
self._raise_response_error(response)
return True
def move(self, file: File, folder_id: str | None) -> bool:
def move(self, file: File, folder_id: str) -> bool:
print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.ENTRYPOINT + file.id + "/move/"
data = {"folder": folder_id}
@ -83,11 +85,12 @@ class FileApi(BaseApi):
def download(self, file: File, path: str) -> bool:
print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.connection.build_url("v2/", file.download_url)
r = self.connection.session.get(url, stream=True)
url = "v2/" + file.download_url
response = self._get(url, stream=True)
self._raise_response_error(response)
try:
with open(path, "wb") as f:
for chunk in r.iter_content(chunk_size=4096):
for chunk in response.iter_content(chunk_size=4096):
if chunk:
f.write(chunk)
f.flush()

View File

@ -50,7 +50,7 @@ class FolderApi(BaseApi):
def update(self, folder: FolderSimple) -> bool:
print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.ENTRYPOINT
url = self.ENTRYPOINT + folder.id + "/"
data = {
"name": folder.name,
"description": folder.description,
@ -68,6 +68,15 @@ class FolderApi(BaseApi):
self._raise_response_error(response)
return True
def move(self, folder: FolderSimple, folder_id: str) -> bool:
print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.ENTRYPOINT + folder.id + "/move/"
data = {"parent": folder_id}
token_check(self.connection)
response = self._post(url, data=data)
self._raise_response_error(response)
return True
def metadata(self, id: str) -> dict:
print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.ENTRYPOINT + id + "/metadata/"