Skip to content

Commit

Permalink
Run test cases on hns
Browse files Browse the repository at this point in the history
  • Loading branch information
yanghua committed Nov 12, 2024
1 parent b7419e7 commit 36a4b5f
Showing 1 changed file with 13 additions and 23 deletions.
36 changes: 13 additions & 23 deletions tosfs/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
from tosfs.mpu import MultipartUploader
from tosfs.retry import CONFLICT_CODE, INVALID_RANGE_CODE, retryable_func_executor
from tosfs.tag import BucketTagMgr
from tosfs.utils import find_bucket_key, get_brange, is_dir
from tosfs.utils import find_bucket_key, get_brange
from tosfs.version import Version

logger = logging.getLogger("tosfs")
Expand Down Expand Up @@ -835,32 +835,22 @@ def isdir(self, path: str) -> bool:
if not key:
return False

key = key.rstrip("/") + "/"

try:
resp = retryable_func_executor(
lambda: self.tos_client.get_file_status(bucket, key),
max_retry_num=self.max_retry_num,
)
return resp.key is not None and is_dir(resp.key, key)
if self._is_fns_bucket(bucket):
resp = retryable_func_executor(
lambda: self.tos_client.get_file_status(bucket, key),
max_retry_num=self.max_retry_num,
)
return resp.key != key
else:
resp = retryable_func_executor(
lambda: self.tos_client.head_object(bucket, key),
max_retry_num=self.max_retry_num,
)
return resp.is_directory
except TosServerError as e:
if e.status_code == TOS_SERVER_STATUS_CODE_NOT_FOUND:
return False
if (
self._get_bucket_type(bucket) == TOS_BUCKET_TYPE_HNS
and e.status_code == CONFLICT_CODE
and e.header._store["x-tos-ec"][1] == "0026-00000020"
):
out = retryable_func_executor(
lambda: self.tos_client.list_objects_type2(
bucket,
prefix=key,
delimiter="/",
max_keys=1,
),
max_retry_num=self.max_retry_num,
)
return out.key_count > 0
raise e

def isfile(self, path: str) -> bool:
Expand Down

0 comments on commit 36a4b5f

Please sign in to comment.