SYMBOL INDEX (6054 symbols across 397 files) FILE: .github/scripts/cmptree.py class TreeComparator (line 39) | class TreeComparator(object): method __init__ (line 40) | def __init__(self, dir1, dir2): method compare (line 48) | def compare(self, p=""): method compare_files (line 66) | def compare_files(self, d1, d2, files): method compare_xattr (line 95) | def compare_xattr(self, f1, f2): function info (line 105) | def info(s): function warn (line 107) | def warn(s): function fail (line 109) | def fail(s, exitcode = 1): function main (line 112) | def main(): function __entry (line 147) | def __entry(): FILE: .github/scripts/fsrand.py class Devnull (line 41) | class Devnull(object): method write (line 42) | def write(self, *args): class FsRandomizer (line 45) | class FsRandomizer(object): method __init__ (line 46) | def __init__(self, path, count, seed): method __stdout (line 56) | def __stdout(self, s): method __stderr (line 58) | def __stderr(self, s): method __getdir_recurse (line 60) | def __getdir_recurse(self, path): method __getdir (line 70) | def __getdir(self): method __getsubpath (line 75) | def __getsubpath(self, path): method __gen_unicode_name (line 83) | def __gen_unicode_name(self, lower_limit=1, upper_limit=64): method __gen_ascii_name (line 101) | def __gen_ascii_name(self, lower_limit=1, upper_limit=64): method __newname (line 106) | def __newname(self): method __newsubpath (line 115) | def __newsubpath(self, path): method __newmode (line 120) | def __newmode(self, mode): method __random_write (line 122) | def __random_write(self, file): method __create (line 130) | def __create(self, path): method __update (line 134) | def __update(self, path): method randomize (line 138) | def randomize(self): function info (line 240) | def info(s): function warn (line 242) | def warn(s): function fail (line 244) | def fail(s, exitcode = 1): function main (line 247) | def main(): function __entry (line 274) | def __entry(): FILE: .github/scripts/hypo/command.py class JuicefsCommandMachine (line 46) | class JuicefsCommandMachine(JuicefsMachine): method __init__ (line 61) | def __init__(self): method get_default_rootdir1 (line 64) | def get_default_rootdir1(self): method get_default_rootdir2 (line 67) | def get_default_rootdir2(self): method equal (line 70) | def equal(self, result1, result2): method get_client_version (line 83) | def get_client_version(self, mount): method should_run (line 87) | def should_run(self, rule): method info (line 101) | def info(self, entry, raw=True, recuisive=False, strict=True, user='ro... method rmr (line 110) | def rmr(self, entry, user='root'): method status (line 118) | def status(self): method warmup (line 127) | def warmup(self, entry, user='root'): method gc (line 138) | def gc(self, compact=False, delete=False, user='root'): method fsck (line 150) | def fsck(self, entry, repair=False, recuisive=False, user='root'): method clone (line 163) | def clone(self, entry, parent, new_entry_name, preserve=False, user='r... method dump (line 176) | def dump(self, folder, fast, skip_trash, threads, keep_secret_key, use... method dump_load_dump (line 192) | def dump_load_dump(self, folder, fast=False, skip_trash=False, threads... method diff (line 200) | def diff(self, str1:str, str2:str): method trash_list (line 209) | def trash_list(self, user='root'): method restore (line 220) | def restore(self, put_back, threads, user='root'): method compact (line 231) | def compact(self, entry, threads, user='root'): method config (line 247) | def config(self, capacity, inodes, trash_days, enable_acl, encrypt_sec... method teardown (line 252) | def teardown(self): FILE: .github/scripts/hypo/command_op.py class CommandOperation (line 20) | class CommandOperation: method __init__ (line 23) | def __init__(self, name, mp, root_dir): method guess_password (line 30) | def guess_password(self, meta_url): method get_meta_url (line 38) | def get_meta_url(self, mp): method run_cmd (line 53) | def run_cmd(self, command:str, stderr=subprocess.STDOUT) -> str: method seteuid (line 67) | def seteuid(self, user): method handleException (line 71) | def handleException(self, e, action, path, **kwargs): method get_raw (line 84) | def get_raw(self, size:str): method parse_info (line 91) | def parse_info(self, info: str): method do_info (line 121) | def do_info(self, entry, strict=True, user='root', raw=True, recuisive... method do_rmr (line 141) | def do_rmr(self, entry, user='root'): method do_status (line 154) | def do_status(self): method do_dump (line 166) | def do_dump(self, folder, fast=False, skip_trash=False, threads=1, kee... method get_dump_cmd (line 182) | def get_dump_cmd(self, meta_url, subdir, fast, skip_trash, keep_secret... method do_dump_load_dump (line 192) | def do_dump_load_dump(self, folder, fast=False, skip_trash=False, thre... method clean_dump (line 212) | def clean_dump(self, dump): method do_warmup (line 232) | def do_warmup(self, entry, user='root'): method do_gc (line 242) | def do_gc(self, compact:bool, delete:bool, user:str='root'): method do_clone (line 256) | def do_clone(self, entry, parent, new_entry_name, preserve:bool, user:... method do_fsck (line 270) | def do_fsck(self, entry, repair=False, recuisive=False, user='root'): method do_trash_list (line 285) | def do_trash_list(self, user='root'): method do_restore (line 300) | def do_restore(self, put_back, threads, user='root'): method do_trash_restore (line 315) | def do_trash_restore(self, index, user='root'): method do_compact (line 332) | def do_compact(self, entry, threads=5, user='root'): method do_config (line 342) | def do_config(self, capacity, inodes, trash_days, enable_acl, encrypt_... FILE: .github/scripts/hypo/command_test.py class TestCommand (line 4) | class TestCommand(unittest.TestCase): method test_dump (line 5) | def test_dump(self): method skip_test_info (line 17) | def skip_test_info(self): method test_clone (line 24) | def test_clone(self): method test_config (line 32) | def test_config(self): method test_clone_4834 (line 38) | def test_clone_4834(self): FILE: .github/scripts/hypo/common.py function red (line 10) | def red(s): function replace (line 13) | def replace(src, old, new): function run_cmd (line 22) | def run_cmd(command: str) -> str: function setup_logger (line 40) | def setup_logger(log_file_path, logger_name, log_level='INFO'): function is_jfs (line 69) | def is_jfs(path): function get_root (line 74) | def get_root(path): function get_volume_name (line 87) | def get_volume_name(path): function get_zones (line 98) | def get_zones(dir): function get_acl (line 114) | def get_acl(abspath: str): function support_acl (line 122) | def support_acl(path): function get_stat_field (line 142) | def get_stat_field(st: os.stat_result): function create_group (line 153) | def create_group(groupname): function create_user (line 160) | def create_user(user): function clean_dir (line 168) | def clean_dir(dir): function compare_content (line 179) | def compare_content(dir1, dir2): function compare_stat (line 197) | def compare_stat(dir1, dir2): function compare_acl (line 212) | def compare_acl(dir1, dir2): FILE: .github/scripts/hypo/context.py class Context (line 2) | class Context: method __init__ (line 3) | def __init__(self, root_dir:str, mp:str) -> None: FILE: .github/scripts/hypo/file.py class JuicefsDataMachine (line 24) | class JuicefsDataMachine(RuleBasedStateMachine): method __init__ (line 44) | def __init__(self): method equal (line 48) | def equal(self, result1, result2): method parse_error_message (line 63) | def parse_error_message(self, err): method should_run (line 73) | def should_run(self, rule): method init_folders (line 80) | def init_folders(self): method read (line 92) | def read(self, fd, length): method write (line 102) | def write(self, fd, content): method writelines (line 111) | def writelines(self, fd, lines): method seek (line 121) | def seek(self, fd, offset, whence): method tell (line 128) | def tell(self, fd): method close (line 137) | def close(self, fd): method flush_and_fsync (line 147) | def flush_and_fsync(self, fd): method fallocate (line 157) | def fallocate(self, fd, offset, length): method readlines (line 164) | def readlines(self, fd): method readline (line 171) | def readline(self, fd): method truncate (line 181) | def truncate(self, fd, size): method copy_file_range (line 194) | def copy_file_range(self, src, dst, src_offset, dst_offset, length): method teardown (line 199) | def teardown(self): FILE: .github/scripts/hypo/file_op.py class FileOperation (line 30) | class FileOperation: method __init__ (line 35) | def __init__(self, name, root_dir:str, mount_point=None, use_sdk:bool=... method run_cmd (line 51) | def run_cmd(self, command:str) -> str: method get_zones (line 65) | def get_zones(self): method init_rootdir (line 68) | def init_rootdir(self): method handleException (line 83) | def handleException(self, e, action, path, **kwargs): method parse_pysdk_error (line 97) | def parse_pysdk_error(self, err:str): method get_sdk_path (line 103) | def get_sdk_path(self, abspath): method do_stat (line 106) | def do_stat(self, entry): method do_create_file (line 123) | def do_create_file(self, file, content, mode, encoding, errors): method do_open (line 142) | def do_open(self, file, mode, encoding, errors): method do_write (line 159) | def do_write(self, fd, file, content): method do_writelines (line 178) | def do_writelines(self, fd, file, lines): method do_seek (line 199) | def do_seek(self, fd, file, offset, whence): method do_tell (line 212) | def do_tell(self, fd, file): method do_close (line 225) | def do_close(self, fd, file): method do_flush_and_fsync (line 238) | def do_flush_and_fsync(self, fd, file): method do_fallocate (line 256) | def do_fallocate(self, fd, file, offset, length): method do_read (line 275) | def do_read(self, fd, file, length): method do_readlines (line 299) | def do_readlines(self, fd, file): method do_readline (line 328) | def do_readline(self, fd, file): method do_truncate (line 358) | def do_truncate(self, fd, file, size): method do_copy_file_range (line 379) | def do_copy_file_range(self, src_file, dst_file, src_fd, dst_fd, src_o... method do_mmap_create (line 393) | def do_mmap_create(self, file, fd): method do_mmap_read (line 406) | def do_mmap_read(self, file, mm: mmap.mmap, length): method do_mmap_read_byte (line 420) | def do_mmap_read_byte(self, file, mm:mmap.mmap): method do_mmap_read_line (line 433) | def do_mmap_read_line(self, file, mm:mmap.mmap): method do_mmap_write (line 446) | def do_mmap_write(self, file, mm:mmap.mmap, content): method do_mmap_write_byte (line 459) | def do_mmap_write_byte(self, file, mm: mmap.mmap, byte): method do_mmap_move (line 472) | def do_mmap_move(self, file, mm: mmap.mmap, dest, src, count): method do_mmap_resize (line 488) | def do_mmap_resize(self, file, mm: mmap.mmap): method do_mmap_seek (line 505) | def do_mmap_seek(self, file, mm: mmap.mmap, offset, whence): method do_mmap_size (line 521) | def do_mmap_size(self, file, mm: mmap.mmap): method do_mmap_tell (line 534) | def do_mmap_tell(self, file, mm: mmap.mmap): method do_mmap_flush (line 547) | def do_mmap_flush(self, file, mm: mmap.mmap): method do_mmap_close (line 560) | def do_mmap_close(self, file, mm: mmap.mmap): FILE: .github/scripts/hypo/file_test.py class TestPySdk (line 4) | class TestPySdk(unittest.TestCase): method test_issue_1522_1 (line 5) | def test_issue_1522_1(self): method test_issue_1522_2 (line 13) | def test_issue_1522_2(self): method test_issue_1523 (line 22) | def test_issue_1523(self): method skip_test_issue_1533 (line 30) | def skip_test_issue_1533(self): method skip_test_issue_1548 (line 41) | def skip_test_issue_1548(self): method skip_test_issue_1548_2 (line 51) | def skip_test_issue_1548_2(self): FILE: .github/scripts/hypo/fs.py class JuicefsMachine (line 24) | class JuicefsMachine(RuleBasedStateMachine): method init_folders (line 59) | def init_folders(self): method create_users (line 64) | def create_users(self, users): method get_default_rootdir1 (line 69) | def get_default_rootdir1(self): method get_default_rootdir2 (line 72) | def get_default_rootdir2(self): method __init__ (line 75) | def __init__(self): method remove_dangling_files (line 92) | def remove_dangling_files(self): method equal (line 97) | def equal(self, result1, result2): method parse_error_message (line 119) | def parse_error_message(self, err): method seteuid (line 129) | def seteuid(self, user): method should_run (line 133) | def should_run(self, rule): method stat (line 144) | def stat(self, entry, user = 'root'): method lstat (line 154) | def lstat(self, entry, user = 'root'): method exists (line 164) | def exists(self, entry, user = 'root'): method open (line 176) | def open(self, file, flags, mode, user='root', umask=0o022): method open2 (line 186) | def open2(self, file, mode, user='root'): method write (line 201) | def write(self, file, offset, content, mode, whence, encoding=None, er... method writelines (line 214) | def writelines(self, file, offset, lines, mode, whence, user='root'): method fallocate (line 227) | def fallocate(self, file, offset, length, mode, user='root'): method copy_file_range (line 240) | def copy_file_range(self, src, dst, src_offset, dst_offset, count, user): method read (line 254) | def read(self, file, mode, offset, length, whence=os.SEEK_CUR, encodin... method readlines (line 265) | def readlines(self, file, mode, offset, whence=os.SEEK_CUR, user='root'): method readline (line 276) | def readline(self, file, mode, offset, whence=os.SEEK_CUR, user='root'): method truncate (line 286) | def truncate(self, file, size, user='root'): method create_file (line 298) | def create_file(self, parent, file_name, content, mode='xb', buffering... method listdir (line 310) | def listdir(self, dir, user='root'): method unlink (line 320) | def unlink(self, file, user='root'): method rename_file (line 336) | def rename_file(self, entry, parent, new_entry_name, user='root', umas... method rename_dir (line 352) | def rename_dir(self, entry, parent, new_entry_name, user='root', umask... method copy_file (line 369) | def copy_file(self, entry, parent, new_entry_name, follow_symlinks, us... method clone_cp_file (line 386) | def clone_cp_file(self, entry, parent, new_entry_name, preserve, user=... method clone_cp_dir (line 406) | def clone_cp_dir(self, entry, parent, new_entry_name, preserve, user, ... method mkdir (line 423) | def mkdir(self, parent, subdir, mode, user='root', umask=0o022): method rmdir (line 436) | def rmdir(self, dir, user='root'): method hardlink (line 453) | def hardlink(self, src_file, parent, link_file_name, user='root', umas... method symlink (line 469) | def symlink(self, src_file, parent, link_file_name, user='root', umask... method loop_symlink (line 484) | def loop_symlink(self, parent, link_file_name, user='root'): method readlink (line 497) | def readlink(self, file, user='root'): method set_xattr (line 510) | def set_xattr(self, file, name, value, flag, user='root'): method get_xattr (line 523) | def get_xattr(self, xattr, user): method list_xattr (line 531) | def list_xattr(self, file, user='root'): method remove_xattr (line 541) | def remove_xattr(self, xattr, user='root'): method change_groups (line 554) | def change_groups(self, user, group, groups): method chmod (line 562) | def chmod(self, entry, mode, user='root'): method get_acl (line 569) | def get_acl(self, entry): method remove_acl (line 580) | def remove_acl(self, entry: str, option: str, user='root'): method set_acl (line 604) | def set_acl(self, sudo_user, entry, user, user_perm, group, group_perm... method utime (line 619) | def utime(self, entry, access_time, modify_time, follow_symlinks, user... method chown (line 629) | def chown(self, entry, owner, user='root'): method split_dir (line 639) | def split_dir(self, dir, vdirs): method merge_dir (line 648) | def merge_dir(self, dir): method rebalance_dir (line 661) | def rebalance_dir(self, dir, zone1, zone2, is_vdir, pysdk=True): method rebalance_file (line 674) | def rebalance_file(self, file, zone1, zone2, pysdk=True): method teardown (line 678) | def teardown(self): FILE: .github/scripts/hypo/fs_acl_test.py class TestFsrand2 (line 4) | class TestFsrand2(unittest.TestCase): method test_acl_913 (line 5) | def test_acl_913(self): method test_acl_1004 (line 15) | def test_acl_1004(self): method test_acl_1006 (line 25) | def test_acl_1006(self): method test_acl_1011 (line 35) | def test_acl_1011(self): method test_acl_1015 (line 47) | def test_acl_1015(self): method test_acl_1022 (line 56) | def test_acl_1022(self): method test_acl_1044 (line 66) | def test_acl_1044(self): method test_acl_4458 (line 77) | def test_acl_4458(self): method test_acl_4472 (line 85) | def test_acl_4472(self): method test_acl_4483 (line 96) | def test_acl_4483(self): method test_acl_4496 (line 106) | def test_acl_4496(self): method test_acl_4663 (line 118) | def test_acl_4663(self): method skip_test_acl_2044 (line 126) | def skip_test_acl_2044(self): FILE: .github/scripts/hypo/fs_op.py class FsOperation (line 28) | class FsOperation: method __init__ (line 32) | def __init__(self, name, root_dir:str, mount_point=None, use_sdk:bool=... method get_client_for_rebalance (line 52) | def get_client_for_rebalance(self): method run_cmd (line 62) | def run_cmd(self, command:str) -> str: method get_zones (line 76) | def get_zones(self): method init_rootdir (line 79) | def init_rootdir(self): method seteuid (line 94) | def seteuid(self, user, action=''): method reset_euid (line 103) | def reset_euid(self, action=''): method handleException (line 110) | def handleException(self, e, action, path, **kwargs): method parse_pysdk_error (line 124) | def parse_pysdk_error(self, err:str): method get_sdk_path (line 130) | def get_sdk_path(self, abspath): method do_remove_dangling_files (line 133) | def do_remove_dangling_files(self): method do_check_dangling_files (line 162) | def do_check_dangling_files(self): method do_stat (line 182) | def do_stat(self, entry, user): method do_lstat (line 200) | def do_lstat(self, entry, user): method do_exists (line 217) | def do_exists(self, entry, user): method do_open (line 234) | def do_open(self, file, flags, mask, mode, user): method do_open2 (line 256) | def do_open2(self, file, mode, user): method do_write (line 275) | def do_write(self, file, content, mode:str, encoding, errors, offset, ... method do_writelines (line 307) | def do_writelines(self, file, lines, mode, offset, whence, user): method do_fallocate (line 341) | def do_fallocate(self, file, offset, length, mode, user): method do_copy_file_range (line 364) | def do_copy_file_range(self, src, dst, src_offset, dst_offset, count, ... method do_read (line 387) | def do_read(self, file, length, mode, offset, whence, user, encoding, ... method do_readlines (line 429) | def do_readlines(self, file, mode, offset, whence, user): method do_readline (line 472) | def do_readline(self, file, mode, offset, whence, user): method do_truncate (line 515) | def do_truncate(self, file, size, user): method do_create_file (line 546) | def do_create_file(self, parent, file_name, content, mode='xb', user='... method do_listdir (line 569) | def do_listdir(self, dir, user): method do_unlink (line 586) | def do_unlink(self, file, user): method do_rename (line 603) | def do_rename(self, entry, parent, new_entry_name, user, umask): method do_copy_file (line 627) | def do_copy_file(self, entry, parent, new_entry_name, follow_symlinks,... method can_clone (line 645) | def can_clone(self, src_dir, dst_dir): method do_clone_entry (line 653) | def do_clone_entry(self, entry, parent, new_entry_name, preserve, use... method do_copy_tree (line 682) | def do_copy_tree(self, entry, parent, new_entry_name, symlinks, ignore... method do_mkdir (line 703) | def do_mkdir(self, parent, subdir, mode, user, umask): method do_rmdir (line 726) | def do_rmdir(self, dir, user): method do_hardlink (line 745) | def do_hardlink(self, src_file, parent, link_file_name, user, umask): method do_symlink (line 769) | def do_symlink(self, src_file, parent, link_file_name, user, umask): method do_readlink (line 795) | def do_readlink(self, file, user): method do_loop_symlink (line 811) | def do_loop_symlink(self, parent, link_file_name, user='root'): method do_set_xattr (line 828) | def do_set_xattr(self, file, name, value, flag, user): method do_get_xattr (line 846) | def do_get_xattr(self, file, name, user): method do_list_xattr (line 862) | def do_list_xattr(self, file, user): method do_remove_xattr (line 889) | def do_remove_xattr(self, file, name, user): method do_change_groups (line 906) | def do_change_groups(self, user, group, groups): method do_chmod (line 916) | def do_chmod(self, entry, mode, user): method do_get_acl (line 933) | def do_get_acl(self, entry: str): method do_remove_acl (line 943) | def do_remove_acl(self, entry: str, option: str, user: str): method do_set_acl (line 953) | def do_set_acl(self, sudo_user, entry, user, user_perm, group, group_p... method do_utime (line 977) | def do_utime(self, entry, access_time, modify_time, follow_symlinks, u... method do_chown (line 995) | def do_chown(self, entry, owner, user): method do_split_dir (line 1015) | def do_split_dir(self, dir, vdirs): method do_merge_dir (line 1029) | def do_merge_dir(self, dir): method do_rebalance_with_pysdk (line 1044) | def do_rebalance_with_pysdk(self, entry, zone, is_vdir): method do_rebalance (line 1063) | def do_rebalance(self, entry, zone, is_vdir, pysdk=True): FILE: .github/scripts/hypo/fs_sdk_test.py class TestPySdk (line 10) | class TestPySdk(unittest.TestCase): method test_issue_1331 (line 11) | def test_issue_1331(self): method test_issue_1339 (line 18) | def test_issue_1339(self): method test_issue_1349 (line 27) | def test_issue_1349(self): method test_issue_1359 (line 35) | def test_issue_1359(self): method test_issue_1361 (line 43) | def test_issue_1361(self): method test_issue_1362 (line 51) | def test_issue_1362(self): method test_issue_1364 (line 59) | def test_issue_1364(self): method test_issue_1365 (line 67) | def test_issue_1365(self): method test_issue_1369 (line 75) | def test_issue_1369(self): method test_issue_1369_2 (line 83) | def test_issue_1369_2(self): method test_issue_1369_3 (line 91) | def test_issue_1369_3(self): method skip_test_issue_1370 (line 99) | def skip_test_issue_1370(self): method test_issue_1419 (line 109) | def test_issue_1419(self): method test_issue_1422 (line 118) | def test_issue_1422(self): method test_issue_1424 (line 127) | def test_issue_1424(self): method test_issue_1425 (line 135) | def test_issue_1425(self): method test_issue_1442 (line 144) | def test_issue_1442(self): method test_issue_1443 (line 152) | def test_issue_1443(self): method test_issue_1449 (line 161) | def test_issue_1449(self): method test_issue_1450 (line 170) | def test_issue_1450(self): method skip_test_issue_1450_2 (line 178) | def skip_test_issue_1450_2(self): method test_issue_1457 (line 186) | def test_issue_1457(self): method skip_test_issue_1465 (line 193) | def skip_test_issue_1465(self): method test_issue_1481 (line 201) | def test_issue_1481(self): method test_issue_x (line 209) | def test_issue_x(self): method test_issue_y (line 218) | def test_issue_y(self): method test_issue_z (line 225) | def test_issue_z(self): method test_issue_a (line 233) | def test_issue_a(self): method test_issue_b (line 240) | def test_issue_b(self): method test_issue_c (line 247) | def test_issue_c(self): method test_issue_d (line 253) | def test_issue_d(self): method test_issue_e (line 265) | def test_issue_e(self): method test_issue_f (line 272) | def test_issue_f(self): method test_rename_invalid_arg (line 280) | def test_rename_invalid_arg(self): method test_rename_to_dir_not_exist (line 292) | def test_rename_to_dir_not_exist(self): method test_rmdir_check_exist (line 300) | def test_rmdir_check_exist(self): method test_truncate (line 309) | def test_truncate(self): method test_unlink (line 320) | def test_unlink(self): method test_read_utf8 (line 330) | def test_read_utf8(self): method test_create_isdir (line 338) | def test_create_isdir(self): method test_rename_file (line 351) | def test_rename_file(self): FILE: .github/scripts/hypo/fs_test.py class TestFsrand2 (line 5) | class TestFsrand2(unittest.TestCase): method test_issue_910 (line 6) | def test_issue_910(self): method test_issue_914 (line 17) | def test_issue_914(self): method skip_test_issue_918 (line 26) | def skip_test_issue_918(self): method test_x (line 36) | def test_x(self): FILE: .github/scripts/hypo/s3.py class S3Machine (line 22) | class S3Machine(RuleBasedStateMachine): method __init__ (line 40) | def __init__(self): method init_aliases (line 56) | def init_aliases(self): method init_policies (line 60) | def init_policies(self): method equal (line 63) | def equal(self, result1, result2): method info (line 80) | def info(self, alias=ROOT_ALIAS): method list_buckets (line 87) | def list_buckets(self, alias=ROOT_ALIAS): method create_bucket (line 97) | def create_bucket(self, bucket_name, alias = ROOT_ALIAS): method remove_bucket (line 111) | def remove_bucket(self, bucket_name, alias = ROOT_ALIAS): method set_bucket_policy (line 126) | def set_bucket_policy(self, bucket_name, policy, alias=ROOT_ALIAS): method get_bucket_policy (line 136) | def get_bucket_policy(self, bucket_name, alias=ROOT_ALIAS): method list_bucket_policy (line 146) | def list_bucket_policy(self, bucket_name, alias=ROOT_ALIAS, recursive=... method put_object (line 160) | def put_object(self, bucket_name, object_name, data, use_part_size=Fal... method get_object (line 179) | def get_object(self, obj:str, offset=0, length=0): method fput_object (line 192) | def fput_object(self, bucket_name, object_name, alias=ROOT_ALIAS): method fget_object (line 207) | def fget_object(self, obj:str, file_path, alias = ROOT_ALIAS): method remove_object (line 220) | def remove_object(self, obj:str, alias=ROOT_ALIAS): method stat_object (line 236) | def stat_object(self, obj:str, alias=ROOT_ALIAS): method list_objects (line 252) | def list_objects(self, bucket_name, prefix=None, start_after=None, inc... method add_user (line 263) | def add_user(self, user_name, secret_key=DEFAULT_SECRET_KEY, alias = R... method remove_user (line 278) | def remove_user(self, user_name, alias = ROOT_ALIAS): method enable_user (line 292) | def enable_user(self, user_name, alias=ROOT_ALIAS): method disable_user (line 302) | def disable_user(self, user_name, alias=ROOT_ALIAS): method user_info (line 312) | def user_info(self, user_name, alias=ROOT_ALIAS): method list_users (line 319) | def list_users(self, alias=ROOT_ALIAS): method list_groups (line 326) | def list_groups(self, alias=ROOT_ALIAS): method add_group (line 338) | def add_group(self, group_name, members, alias=ROOT_ALIAS): method group_info (line 351) | def group_info(self, group_name, alias=ROOT_ALIAS): method remove_group (line 363) | def remove_group(self, group_name, group_members, alias=ROOT_ALIAS): method disable_group (line 377) | def disable_group(self, group_name, alias=ROOT_ALIAS): method enable_group (line 387) | def enable_group(self, group_name, alias=ROOT_ALIAS): method add_policy (line 399) | def add_policy(self, policy_name, policy_document, alias=ROOT_ALIAS): method remove_policy (line 414) | def remove_policy(self, policy_name, alias=ROOT_ALIAS): method policy_info (line 430) | def policy_info(self, policy_name, alias=ROOT_ALIAS): method list_policies (line 437) | def list_policies(self, alias=ROOT_ALIAS): method set_policy_to_user (line 449) | def set_policy_to_user(self, policy_name, user_name, alias=ROOT_ALIAS): method set_policy_to_group (line 465) | def set_policy_to_group(self, group_name, policy_name, alias=ROOT_ALIAS): method unset_policy_from_user (line 480) | def unset_policy_from_user(self, user_policy:str, alias=ROOT_ALIAS): method unset_policy_from_group (line 497) | def unset_policy_from_group(self, group_policy:str, alias=ROOT_ALIAS): method set_alias (line 516) | def set_alias(self, alias, user_name, url1=URL1, url2=URL2): method remove_alias (line 530) | def remove_alias(self, alias): method teardown (line 540) | def teardown(self): FILE: .github/scripts/hypo/s3_op.py class S3Client (line 25) | class S3Client(): method __init__ (line 27) | def __init__(self, prefix, url, url2=None): method run_cmd (line 34) | def run_cmd(self, command:str, stderr=subprocess.STDOUT) -> str: method sort_dict (line 48) | def sort_dict(self, obj): method handleException (line 58) | def handleException(self, e, action, **kwargs): method do_info (line 77) | def do_info(self, alias): method remove_all_buckets (line 86) | def remove_all_buckets(self): method do_list_buckets (line 97) | def do_list_buckets(self, alias): method do_remove_bucket (line 108) | def do_remove_bucket(self, bucket_name:str, alias): method do_create_bucket (line 117) | def do_create_bucket(self, bucket_name:str, alias): method do_set_bucket_policy (line 126) | def do_set_bucket_policy(self, bucket_name:str, policy:str, alias): method do_get_bucket_policy (line 135) | def do_get_bucket_policy(self, bucket_name:str, alias): method do_list_bucket_policy (line 144) | def do_list_bucket_policy(self, bucket_name:str, alias, recursive=False): method do_stat_object (line 156) | def do_stat_object(self, bucket_name:str, object_name:str, alias): method do_put_object (line 171) | def do_put_object(self, bucket_name:str, object_name:str, data, length... method do_get_object (line 181) | def do_get_object(self, bucket_name:str, object_name:str, offset=0, le... method do_fput_object (line 202) | def do_fput_object(self, bucket_name:str, object_name:str, src_path:st... method do_fget_object (line 211) | def do_fget_object(self, bucket_name:str, object_name:str, file_path:s... method object_exists (line 220) | def object_exists(self, bucket_name:str, object_name:str, alias): method do_remove_object (line 227) | def do_remove_object(self, bucket_name:str, object_name:str, alias): method do_list_objects (line 237) | def do_list_objects(self, bucket_name, prefix, start_after, include_us... method get_alias (line 248) | def get_alias(self, alias): method do_add_user (line 251) | def do_add_user(self, access_key, secret_key, alias): method do_remove_user (line 260) | def do_remove_user(self, access_key, alias): method do_enable_user (line 269) | def do_enable_user(self, access_key, alias): method do_disable_user (line 278) | def do_disable_user(self, access_key, alias): method do_user_info (line 287) | def do_user_info(self, access_key, alias): method do_list_users (line 296) | def do_list_users(self, alias): method remove_all_users (line 305) | def remove_all_users(self, alias=ROOT_ALIAS): method do_list_groups (line 314) | def do_list_groups(self, alias): method do_add_group (line 323) | def do_add_group(self, group_name, members, alias): method do_remove_group (line 332) | def do_remove_group(self, group_name, members, alias): method do_disable_group (line 341) | def do_disable_group(self, group_name, alias): method do_enable_group (line 350) | def do_enable_group(self, group_name, alias): method do_group_info (line 359) | def do_group_info(self, group_name, alias): method remove_all_groups (line 368) | def remove_all_groups(self, alias=ROOT_ALIAS): method do_add_policy (line 376) | def do_add_policy(self, policy_name, policy_document, alias): method do_remove_policy (line 390) | def do_remove_policy(self, policy_name, alias): method do_policy_info (line 399) | def do_policy_info(self, policy_name, alias): method do_list_policies (line 408) | def do_list_policies(self, alias): method remove_all_policies (line 418) | def remove_all_policies(self, alias=ROOT_ALIAS): method do_set_policy_to_user (line 426) | def do_set_policy_to_user(self, policy_name, user_name, alias): method do_set_policy_to_group (line 435) | def do_set_policy_to_group(self, policy_name, group_name, alias): method do_unset_policy_from_user (line 444) | def do_unset_policy_from_user(self, policy_name, user_name, alias): method do_unset_policy_from_group (line 453) | def do_unset_policy_from_group(self, policy_name, group_name, alias): method do_set_alias (line 462) | def do_set_alias(self, alias, access_key, secret_key, url): method do_remove_alias (line 472) | def do_remove_alias(self, alias): method do_list_aliases (line 481) | def do_list_aliases(self): method remove_all_aliases (line 490) | def remove_all_aliases(self): FILE: .github/scripts/hypo/s3_test.py class TestS3 (line 4) | class TestS3(unittest.TestCase): method test_bucket (line 5) | def test_bucket(self): method test_user (line 24) | def test_user(self): method test_group (line 39) | def test_group(self): method skip_test_issue_4639 (line 57) | def skip_test_issue_4639(self): method skip_test_issue_4660 (line 68) | def skip_test_issue_4660(self): method test_issue_4682 (line 78) | def test_issue_4682(self): FILE: .github/scripts/hypo/stats.py function singleton (line 1) | def singleton(cls): class Statistics (line 10) | class Statistics: method __init__ (line 11) | def __init__(self): method success (line 14) | def success(self, function_name): method failure (line 19) | def failure(self, function_name): method get (line 24) | def get(self): FILE: .github/scripts/hypo/strategy.py function valid_dir_name (line 27) | def valid_dir_name(): function utf8_byte_arrays (line 62) | def utf8_byte_arrays(draw, min_size=0, max_size=100): function utf16_byte_arrays (line 67) | def utf16_byte_arrays(draw, min_size=0, max_size=100): function ascii_byte_arrays (line 72) | def ascii_byte_arrays(draw, min_size=0, max_size=100): FILE: .github/scripts/hypo/sync.py class SyncMachine (line 29) | class SyncMachine(RuleBasedStateMachine): method init_folders (line 41) | def init_folders(self): method __init__ (line 50) | def __init__(self): method equal (line 53) | def equal(self, result1, result2): method create_file (line 74) | def create_file(self, parent, file_name, content='s', mode='x', user='... method mkdir (line 89) | def mkdir(self, parent, subdir, mode, user='root', umask=0o022): method sync (line 100) | def sync(self, options): method teardown (line 117) | def teardown(self): FILE: .github/scripts/hypo/sync_test.py class TestFsrand2 (line 4) | class TestFsrand2(unittest.TestCase): method test_sync1 (line 6) | def test_sync1(self): method test_sync2 (line 15) | def test_sync2(self): method test_sync3 (line 22) | def test_sync3(self): method test_sync4 (line 29) | def test_sync4(self): method test_sync5 (line 36) | def test_sync5(self): method test_sync6 (line 46) | def test_sync6(self): method test_sync7 (line 53) | def test_sync7(self): method test_sync8 (line 60) | def test_sync8(self): method test_sync9 (line 68) | def test_sync9(self): FILE: .github/scripts/mutate/check_coverage.py function is_mutation_in_coverage (line 5) | def is_mutation_in_coverage(original_file, changed_file, coverage_file): function parse_coverage (line 22) | def parse_coverage(file): FILE: .github/scripts/mutate/check_skip_by_comment.py function is_mutation_skipped_by_comment (line 6) | def is_mutation_skipped_by_comment(original_file, changed_file): FILE: .github/scripts/mutate/modify_sdk_pom.py function get_plugin_str (line 7) | def get_plugin_str(taget_tests, taget_classes, time_constant): function modify_pom (line 27) | def modify_pom(pom_path, taget_tests, taget_classes, time_constant): FILE: .github/scripts/mutate/mutesting.py function do_mutate_test (line 9) | def do_mutate_test(mutation_dir, index, total): FILE: .github/scripts/mutate/parse_black_list.py function parse_check_sum (line 7) | def parse_check_sum(test_file_path): function save_black_list (line 18) | def save_black_list(file_name, check_sum_list): FILE: .github/scripts/mutate/parse_job_total.py function parse_test_jobs (line 8) | def parse_test_jobs(test_file_path): FILE: .github/scripts/mutate/parse_mutate_log.py function parse_mutate_log (line 7) | def parse_mutate_log(log_file): FILE: .github/scripts/mutate/parse_test_cases.py function parse_test_cases (line 7) | def parse_test_cases(test_file_path): FILE: .github/scripts/mutate/query_report.py function query_report (line 6) | def query_report(repo, run_id): FILE: .github/scripts/mutate/save_report.py function save_report (line 25) | def save_report(job_name, report): FILE: .github/scripts/perf/ai_format_benchmark.py class BenchmarkResult (line 58) | class BenchmarkResult: class AIFormatBenchmark (line 69) | class AIFormatBenchmark: method __init__ (line 70) | def __init__(self, mount_point: str, results_file: str, version: str): method clear_cache (line 95) | def clear_cache(self): method run_benchmark (line 111) | def run_benchmark(self, name: str, func: Callable, file_size: int = None, method _print_benchmark_result (line 174) | def _print_benchmark_result(self, name: str, stats: BenchmarkResult): method generate_random_image_bytes (line 194) | def generate_random_image_bytes(self, width=64, height=64, format="JPE... method generate_lmdb_data_entry (line 202) | def generate_lmdb_data_entry(self, idx, image_size=(64, 64)): method write_lmdb_data (line 211) | def write_lmdb_data(self, lmdb_path, num_samples, image_size=(64, 64)): method read_lmdb_data_single_process (line 227) | def read_lmdb_data_single_process(self, lmdb_path): method lmdb_batch_worker (line 242) | def lmdb_batch_worker(self, lmdb_path, key_batch): method read_lmdb_data_multi_process (line 258) | def read_lmdb_data_multi_process(self, lmdb_path, num_processes=2): method benchmark_lmdb (line 289) | def benchmark_lmdb(self): method benchmark_pytorch_weights (line 350) | def benchmark_pytorch_weights(self): method benchmark_tensorflow_h5 (line 399) | def benchmark_tensorflow_h5(self): method benchmark_onnx (line 461) | def benchmark_onnx(self): method benchmark_huggingface_bin (line 544) | def benchmark_huggingface_bin(self): method benchmark_tensorflow_checkpoint (line 606) | def benchmark_tensorflow_checkpoint(self): method benchmark_tfrecord (line 701) | def benchmark_tfrecord(self): method benchmark_hdf5_dataset (line 808) | def benchmark_hdf5_dataset(self): method benchmark_parquet (line 871) | def benchmark_parquet(self): method benchmark_comprehensive (line 936) | def benchmark_comprehensive(self): method generate_report (line 973) | def generate_report(self): method save_results (line 1031) | def save_results(self): method print_detailed_summary (line 1064) | def print_detailed_summary(self): function main (line 1097) | def main(): FILE: .github/scripts/pysdk/bench.py function print_stats (line 12) | def print_stats(stats, interval): function seq_write (line 19) | def seq_write(filename, client: juicefs.Client, protocol, block_size, bu... function random_write (line 42) | def random_write(filename, client: juicefs.Client, protocol, buffering, ... function seq_read (line 75) | def seq_read(filename, client: juicefs.Client, protocol, block_size, buf... function random_read (line 99) | def random_read(filename, client: juicefs.Client, protocol, buffering, b... function clean_page_cache (line 127) | def clean_page_cache(): FILE: .github/scripts/pysdk/pysdk_test.py class FileTests (line 19) | class FileTests(unittest.TestCase): method setUp (line 20) | def setUp(self): method tearDown (line 25) | def tearDown(self): method create_file (line 28) | def create_file(self, filename, content=b'content'): method test_read (line 32) | def test_read(self): method test_write (line 42) | def test_write(self): class UtimeTests (line 51) | class UtimeTests(FileTests): method setUp (line 52) | def setUp(self): method _test_utime (line 58) | def _test_utime(self, set_time, filename=None): method test_utime (line 68) | def test_utime(self): method test_utime_by_times (line 73) | def test_utime_by_times(self): class MakedirTests (line 77) | class MakedirTests(FileTests): method test_makedir (line 78) | def test_makedir(self): class ChownFileTests (line 91) | class ChownFileTests(FileTests): method test_chown_uid_gid_arguments_must_be_index (line 92) | def test_chown_uid_gid_arguments_must_be_index(self): method test_chown_with_root (line 101) | def test_chown_with_root(self): class LinkTests (line 116) | class LinkTests(FileTests): method setUp (line 117) | def setUp(self): method are_files_same (line 122) | def are_files_same(self, file1, file2): method _test_link (line 127) | def _test_link(self, file1, file2): method test_link (line 136) | def test_link(self): class SummaryTests (line 140) | class SummaryTests(FileTests): method setUp (line 144) | def setUp(self): method test_summary (line 151) | def test_summary(self): class QuotaTests (line 187) | class QuotaTests(FileTests): method test_quota (line 188) | def test_quota(self): function normalize (line 218) | def normalize(d): class NonLocalSymlinkTests (line 229) | class NonLocalSymlinkTests(FileTests): method test_directory_link_nonlocal (line 230) | def test_directory_link_nonlocal(self): class ExtendedAttributeTests (line 236) | class ExtendedAttributeTests(FileTests): method _check_xattrs_str (line 237) | def _check_xattrs_str(self, s, getxattr, setxattr, removexattr, listxa... method _check_xattrs (line 286) | def _check_xattrs(self, *args, **kwargs): method test_simple (line 293) | def test_simple(self): method test_fds (line 297) | def test_fds(self): class BenchTests (line 313) | class BenchTests(FileTests): method test_seq_write (line 323) | def test_seq_write(self): method test_random_write (line 338) | def test_random_write(self): method test_seq_read (line 354) | def test_seq_read(self): method test_random_read (line 367) | def test_random_read(self): class ClientParamsTests (line 383) | class ClientParamsTests(FileTests): method test_readonly_param (line 386) | def test_readonly_param(self): method test_cache_params (line 395) | def test_cache_params(self): method test_io_limits (line 420) | def test_io_limits(self): class CloneTests (line 437) | class CloneTests(FileTests): method setUp (line 438) | def setUp(self): method test_basic_clone (line 447) | def test_basic_clone(self): method test_clone_with_preserve (line 460) | def test_clone_with_preserve(self): class WarmupTests (line 469) | class WarmupTests(unittest.TestCase): method setUpClass (line 471) | def setUpClass(self): method tearDownClass (line 493) | def tearDownClass(self): method test_basic_warmup (line 498) | def test_basic_warmup(self): method test_warmup_check (line 515) | def test_warmup_check(self): method test_warmup_evict (line 522) | def test_warmup_evict(self): class InfoTests (line 537) | class InfoTests(FileTests): method test_file_info (line 538) | def test_file_info(self): FILE: .github/scripts/random_read_write.py function random_write (line 4) | def random_write(path1, path2, count=1000): function random_read (line 33) | def random_read(path1, path2): function read_all (line 43) | def read_all(path1, path2): FILE: .github/scripts/testVersionCompatible.py class JuicefsMachine (line 42) | class JuicefsMachine(RuleBasedStateMachine): method __init__ (line 55) | def __init__(self): method format (line 92) | def format(self, juicefs, block_size, capacity, inodes, compress, shar... method config (line 171) | def config(self, juicefs, capacity, inodes, change_bucket, change_aksk... method status (line 233) | def status(self, juicefs): method mount (line 284) | def mount(self, juicefs, no_syslog, other_fuse_options, enable_xattr, ... method info (line 384) | def info(self, juicefs, file_name, data): method rmr (line 399) | def rmr(self, juicefs, file_name): method umount (line 425) | def umount(self, juicefs, force): method destroy (line 438) | def destroy(self, juicefs): method write_and_read (line 462) | def write_and_read(self, file_name, data): method write_rand_files (line 473) | def write_rand_files(self, path, seed): method write_rand_files_and_compare (line 486) | def write_rand_files_and_compare(self): method dump (line 505) | def dump(self, juicefs): method load (line 516) | def load(self, juicefs): method fsck (line 543) | def fsck(self, juicefs): method bench (line 557) | def bench(self, juicefs, block_size, big_file_size, small_file_size, s... method warmup (line 580) | def warmup(self, juicefs, threads, background, from_file, directory): method gc (line 624) | def gc(self, juicefs, compact, delete, threads): method gateway (line 674) | def gateway(self, juicefs, get_timeout, put_timeout, io_retries, max_u... method webdav (line 750) | def webdav(self, juicefs, port): method greater_than_version_formatted (line 764) | def greater_than_version_formatted(self, ver): method greater_than_version_dumped (line 770) | def greater_than_version_dumped(self, ver): method greater_than_version_mounted (line 775) | def greater_than_version_mounted(self, ver): FILE: .github/scripts/utils.py function flush_meta (line 16) | def flush_meta(meta_url:str): function create_mysql_db (line 60) | def create_mysql_db(meta_url): function create_postgres_db (line 75) | def create_postgres_db(meta_url): function clear_storage (line 82) | def clear_storage(storage, bucket, volume): function clear_cache (line 118) | def clear_cache(): function is_readonly (line 124) | def is_readonly(filesystem): function get_upload_delay_seconds (line 131) | def get_upload_delay_seconds(filesystem): function get_stage_blocks (line 138) | def get_stage_blocks(filesystem): function write_data (line 148) | def write_data(filesystem, path, data): function write_block (line 158) | def write_block(filesystem, filepath, bs, count): function mdtest (line 167) | def mdtest(filesystem, meta_url): function run_jfs_cmd (line 183) | def run_jfs_cmd( options): function run_cmd (line 198) | def run_cmd(command): function is_port_in_use (line 212) | def is_port_in_use(port: int) -> bool: function get_storage (line 217) | def get_storage(juicefs, meta_url): FILE: .github/scripts/wins_fs_test.py class WindowsFSTest (line 11) | class WindowsFSTest(unittest.TestCase): method setUp (line 12) | def setUp(self): method tearDown (line 16) | def tearDown(self): method ensure_clean_dir (line 20) | def ensure_clean_dir(self, path): method random_string (line 25) | def random_string(self, length=10): method test_basic_operations (line 28) | def test_basic_operations(self): method test_rename_case_change (line 44) | def test_rename_case_change(self): method test_directory_operations (line 57) | def test_directory_operations(self): method test_concurrent_operations (line 73) | def test_concurrent_operations(self): method test_special_characters (line 95) | def test_special_characters(self): method test_large_files (line 111) | def test_large_files(self): method test_file_attributes (line 128) | def test_file_attributes(self): method test_symlinks (line 142) | def test_symlinks(self): method test_long_paths (line 176) | def test_long_paths(self): FILE: cmd/bench.go function cmdBench (line 35) | func cmdBench() *cli.Command { type benchCase (line 101) | type benchCase struct method writeFiles (line 116) | func (bc *benchCase) writeFiles(index int) { method readFiles (line 135) | func (bc *benchCase) readFiles(index int) { method statFiles (line 153) | func (bc *benchCase) statFiles(index int) { method run (line 163) | func (bc *benchCase) run(test string) float64 { type benchmark (line 109) | type benchmark struct method newCase (line 198) | func (bm *benchmark) newCase(name string, fsize, fcount, bsize int) *b... method colorize (line 216) | func (bm *benchmark) colorize(item string, value, cost float64, prec i... function newBenchmark (line 187) | func newBenchmark(tmpdir string, blockSize, bigSize, smallSize, smallCou... function printResult (line 249) | func printResult(result [][]string, leftAlign int, colorful bool) { function bench (line 308) | func bench(ctx *cli.Context) error { FILE: cmd/bench_test.go function TestBench (line 24) | func TestBench(t *testing.T) { function TestBenchForObject (line 35) | func TestBenchForObject(t *testing.T) { FILE: cmd/clone.go function cmdClone (line 32) | func cmdClone() *cli.Command { function clone (line 65) | func clone(ctx *cli.Context) error { function findMountpoint (line 160) | func findMountpoint(fpath string) (string, error) { FILE: cmd/compact.go function cmdCompact (line 30) | func cmdCompact() *cli.Command { function compact (line 53) | func compact(ctx *cli.Context) error { function doCompact (line 90) | func doCompact(inode meta.Ino, path string, coCnt uint16) error { FILE: cmd/compact_test.go function createTestFile (line 29) | func createTestFile(path string, size int, partCnt int) error { type testDir (line 48) | type testDir struct function initForCompactTest (line 55) | func initForCompactTest(mountDir string, dirs map[string]testDir) { function TestCompact (line 72) | func TestCompact(t *testing.T) { FILE: cmd/config.go function cmdConfig (line 34) | func cmdConfig() *cli.Command { function configManagementFlags (line 74) | func configManagementFlags() []cli.Flag { function configFlags (line 99) | func configFlags() []cli.Flag { function warn (line 113) | func warn(format string, a ...interface{}) { function userConfirmed (line 117) | func userConfirmed() bool { function config (line 132) | func config(ctx *cli.Context) error { FILE: cmd/config_test.go function getStdout (line 29) | func getStdout(args []string) ([]byte, error) { function TestConfig (line 45) | func TestConfig(t *testing.T) { FILE: cmd/debug.go function cmdDebug (line 46) | func cmdDebug() *cli.Command { function copyFileOnWindows (line 95) | func copyFileOnWindows(srcPath, destPath string) error { function copyFile (line 112) | func copyFile(srcPath, destPath string, requireRootPrivileges bool) error { function getLogPath (line 131) | func getLogPath(cmd string) (string, error) { function closeFile (line 143) | func closeFile(file *os.File) { function getPprofPort (line 149) | func getPprofPort(pid, amp string, requireRootPrivileges bool) (int, err... function getRequest (line 222) | func getRequest(url string, timeout time.Duration) ([]byte, error) { function checkPort (line 251) | func checkPort(port int, amp string) error { type metricItem (line 271) | type metricItem struct function reqAndSaveMetric (line 275) | func reqAndSaveMetric(name string, metric metricItem, outDir string, tim... function checkAgent (line 298) | func checkAgent(cmd string) bool { function geneZipFile (line 307) | func geneZipFile(srcPath, destPath string) error { function collectPprof (line 354) | func collectPprof(ctx *cli.Context, cmd string, pid string, amp string, ... function collectLog (line 408) | func collectLog(ctx *cli.Context, cmd string, requireRootPrivileges bool... function collectSysInfo (line 447) | func collectSysInfo(ctx *cli.Context, currDir string) error { function collectSpecialFile (line 467) | func collectSpecialFile(ctx *cli.Context, amp string, currDir string, re... function debug (line 505) | func debug(ctx *cli.Context) error { FILE: cmd/debug_test.go function TestDebug (line 26) | func TestDebug(t *testing.T) { FILE: cmd/debug_unix.go function getCmdMount (line 35) | func getCmdMount(mp string) (uid, pid, cmd string, err error) { FILE: cmd/debug_windows.go function getprocessCommandLine (line 35) | func getprocessCommandLine(pid int) (string, error) { function findMountProcess (line 58) | func findMountProcess(mp string) (int, error) { function getProcessUserSid (line 126) | func getProcessUserSid(pid int) (string, error) { function getCmdMount (line 149) | func getCmdMount(mp string) (uid, pid, cmd string, err error) { FILE: cmd/destroy.go function cmdDestroy (line 32) | func cmdDestroy() *cli.Command { function printSessions (line 62) | func printSessions(ss [][3]string) string { function destroy (line 111) | func destroy(ctx *cli.Context) error { FILE: cmd/dump.go function cmdDump (line 32) | func cmdDump() *cli.Command { function dumpMeta (line 88) | func dumpMeta(m meta.Meta, dst string, threads int, keepSecret, fast, sk... function dump (line 141) | func dump(ctx *cli.Context) error { FILE: cmd/dump_test.go function TestDumpAndLoad (line 27) | func TestDumpAndLoad(t *testing.T) { FILE: cmd/flags.go function globalFlags (line 29) | func globalFlags() []cli.Flag { function addCategory (line 69) | func addCategory(f cli.Flag, cat string) { function addCategories (line 90) | func addCategories(cat string, flags []cli.Flag) []cli.Flag { function storageFlags (line 97) | func storageFlags() []cli.Flag { function getDefaultCacheDir (line 162) | func getDefaultCacheDir() string { function dataCacheFlags (line 188) | func dataCacheFlags() []cli.Flag { function metaFlags (line 279) | func metaFlags() []cli.Flag { function clientFlags (line 338) | func clientFlags(defaultEntryCache float64) []cli.Flag { function shareInfoFlags (line 347) | func shareInfoFlags() []cli.Flag { function metaCacheFlags (line 370) | func metaCacheFlags(defaultEntryCache float64) []cli.Flag { function expandFlags (line 408) | func expandFlags(compoundFlags ...[]cli.Flag) []cli.Flag { FILE: cmd/flags_test.go function Test_duration (line 11) | func Test_duration(t *testing.T) { FILE: cmd/format.go function cmdFormat (line 50) | func cmdFormat() *cli.Command { function formatStorageFlags (line 100) | func formatStorageFlags() []cli.Flag { function formatFlags (line 148) | func formatFlags() []cli.Flag { function formatManagementFlags (line 180) | func formatManagementFlags() []cli.Flag { function fixObjectSize (line 214) | func fixObjectSize(s uint64) uint64 { function createStorage (line 232) | func createStorage(format meta.Format) (object.ObjectStorage, error) { function randSeq (line 314) | func randSeq(n int) string { function doTesting (line 323) | func doTesting(store object.ObjectStorage, key string, data []byte) error { function test (line 362) | func test(store object.ObjectStorage) error { function loadEncrypt (line 382) | func loadEncrypt(keyPath string) string { function readKerbConf (line 393) | func readKerbConf(file string) string { function format (line 404) | func format(c *cli.Context) error { FILE: cmd/format_test.go function TestFixObjectSize (line 27) | func TestFixObjectSize(t *testing.T) { function TestFormat (line 59) | func TestFormat(t *testing.T) { FILE: cmd/fsck.go function cmdFsck (line 32) | func cmdFsck() *cli.Command { function fsck (line 78) | func fsck(ctx *cli.Context) error { FILE: cmd/fsck_test.go function TestFsck (line 25) | func TestFsck(t *testing.T) { function TestFsckRepairDirMode (line 43) | func TestFsckRepairDirMode(t *testing.T) { FILE: cmd/gateway.go function cmdGateway (line 46) | func cmdGateway() *cli.Command { function gateway (line 132) | func gateway(c *cli.Context) error { function gateway2 (line 224) | func gateway2(ctx *mcli.Context) error { function initForSvc (line 229) | func initForSvc(c *cli.Context, mp string, svcType, metaUrl, listenAddr ... FILE: cmd/gateway_noop.go function cmdGateway (line 27) | func cmdGateway() *cli.Command { FILE: cmd/gc.go function cmdGC (line 36) | func cmdGC() *cli.Command { function gc (line 76) | func gc(ctx *cli.Context) error { FILE: cmd/gc_test.go function writeSmallBlocks (line 31) | func writeSmallBlocks(mountDir string) error { function getFileCount (line 55) | func getFileCount(dir string) int { function TestGc (line 69) | func TestGc(t *testing.T) { FILE: cmd/info.go function cmdInfo (line 35) | func cmdInfo() *cli.Command { function info (line 75) | func info(ctx *cli.Context) error { function ltypeToString (line 236) | func ltypeToString(t uint32) string { function legacyInfo (line 247) | func legacyInfo(d, path string, inode uint64, recursive, raw uint8) { function legacyPrintChunks (line 295) | func legacyPrintChunks(resp string, raw bool) { FILE: cmd/info_test.go function TestInfo (line 29) | func TestInfo(t *testing.T) { FILE: cmd/integration_test.go constant gatewayMeta (line 29) | gatewayMeta = "redis://127.0.0.1:6379/14" constant gatewayVolume (line 30) | gatewayVolume = "gateway-volume" constant gatewayAddr (line 31) | gatewayAddr = "localhost:9008" constant webdavMeta (line 32) | webdavMeta = "redis://127.0.0.1:6379/15" constant webdavVolume (line 33) | webdavVolume = "webdav-volume" constant webdavAddr (line 34) | webdavAddr = "localhost:9009" function startGateway (line 36) | func startGateway(t *testing.T) { function startWebdav (line 56) | func startWebdav(t *testing.T) { function TestIntegration (line 78) | func TestIntegration(t *testing.T) { FILE: cmd/load.go function cmdLoad (line 38) | func cmdLoad() *cli.Command { type reader (line 88) | type reader struct method Read (line 93) | func (r *reader) Read(p []byte) (n int, err error) { method Close (line 97) | func (r *reader) Close() error { function open (line 107) | func open(src string, key string, algo string) (io.ReadCloser, error) { function convert (line 157) | func convert(path string, key, algo string) (string, error) { function load (line 192) | func load(ctx *cli.Context) error { function statBak (line 262) | func statBak(ctx *cli.Context, path string) error { function showBakSummary (line 282) | func showBakSummary(ctx *cli.Context, fp *os.File, withOffset bool) error { function showBakDetail (line 321) | func showBakDetail(ctx *cli.Context, fp *os.File, offset int64) error { FILE: cmd/main.go function Main (line 44) | func Main(args []string) error { function calledViaMount (line 112) | func calledViaMount(args []string) bool { function handleSysMountArgs (line 123) | func handleSysMountArgs(args []string) ([]string, error) { function isFlag (line 196) | func isFlag(flags []cli.Flag, option string) (bool, bool) { function reorderOptions (line 213) | func reorderOptions(app *cli.App, args []string) []string { function setup (line 272) | func setup(c *cli.Context, n int) { function setup0 (line 276) | func setup0(c *cli.Context, min, max int) { function removePassword (line 367) | func removePassword(uris ...string) { FILE: cmd/main_test.go function TestArgsOrder (line 27) | func TestArgsOrder(t *testing.T) { function TestHandleSysMountArgs (line 65) | func TestHandleSysMountArgs(t *testing.T) { FILE: cmd/mdtest.go function init (line 42) | func init() { function createDir (line 50) | func createDir(jfs *fs.FileSystem, root string, d int, width int) error { function createFile (line 65) | func createFile(jfs *fs.FileSystem, bar *utils.Bar, np int, root string,... function runTest (line 109) | func runTest(jfs *fs.FileSystem, rootDir string, np, width, depth, files... function cmdMdtest (line 154) | func cmdMdtest() *cli.Command { function initForMdtest (line 200) | func initForMdtest(c *cli.Context, mp string, metaUrl string) *fs.FileSy... function mdtest (line 249) | func mdtest(c *cli.Context) error { FILE: cmd/mount.go function cmdMount (line 50) | func cmdMount() *cli.Command { function exposeMetrics (line 84) | func exposeMetrics(c *cli.Context, registerer prometheus.Registerer, reg... function wrapRegister (line 139) | func wrapRegister(c *cli.Context, mp, name string) (prometheus.Registere... function updateFormat (line 167) | func updateFormat(c *cli.Context) func(*meta.Format) { function relPathToAbs (line 187) | func relPathToAbs(ss []string) []string { function cacheDirPathToAbs (line 208) | func cacheDirPathToAbs(c *cli.Context) { function daemonRun (line 234) | func daemonRun(c *cli.Context, addr string, vfsConf *vfs.Config) { function expandPathForEmbedded (line 248) | func expandPathForEmbedded(addr string) string { function getVfsConf (line 268) | func getVfsConf(c *cli.Context, metaConf *meta.Config, format *meta.Form... function registerMetaMsg (line 303) | func registerMetaMsg(m meta.Meta, store chunk.ChunkStore, chunkConf *chu... function readConfig (line 312) | func readConfig(mp string) ([]byte, error) { function getMetaConf (line 320) | func getMetaConf(c *cli.Context, mp string, readOnly bool) *meta.Config { function getChunkConf (line 356) | func getChunkConf(c *cli.Context, format *meta.Format) *chunk.Config { function initBackgroundTasks (line 412) | func initBackgroundTasks(c *cli.Context, vfsConf *vfs.Config, metaConf *... type storageHolder (line 438) | type storageHolder struct method Shutdown (line 443) | func (h *storageHolder) Shutdown() { function NewReloadableStorage (line 447) | func NewReloadableStorage(format *meta.Format, cli meta.Meta, patch func... function insideContainer (line 479) | func insideContainer() bool { function getDefaultLogDir (line 508) | func getDefaultLogDir() string { function mount (line 533) | func mount(c *cli.Context) error { FILE: cmd/mount_test.go constant testMeta (line 47) | testMeta = "redis://127.0.0.1:6379/11" constant testMountPoint (line 48) | testMountPoint = "/tmp/jfs-unit-test" constant testVolume (line 49) | testVolume = "test" function Test_exposeMetrics (line 52) | func Test_exposeMetrics(t *testing.T) { function ResetHttp (line 99) | func ResetHttp() { function resetTestMeta (line 103) | func resetTestMeta() *redis.Client { // using Redis function mountTemp (line 112) | func mountTemp(t *testing.T, bucket *string, extraFormatOpts []string, e... function umountTemp (line 157) | func umountTemp(t *testing.T) { function TestMount (line 163) | func TestMount(t *testing.T) { function TestFtruncate (line 172) | func TestFtruncate(t *testing.T) { function TestUpdateFstab (line 210) | func TestUpdateFstab(t *testing.T) { function TestUmount (line 241) | func TestUmount(t *testing.T) { function tryMountTemp (line 254) | func tryMountTemp(t *testing.T, bucket *string, extraFormatOpts []string... function TestMountVersionMatch (line 307) | func TestMountVersionMatch(t *testing.T) { function TestParseUIDGID (line 320) | func TestParseUIDGID(t *testing.T) { FILE: cmd/mount_unix.go function showThreadStack (line 60) | func showThreadStack(agentAddr string) { function devMinor (line 78) | func devMinor(dev uint64) uint32 { function killMountProcess (line 84) | func killMountProcess(pid int, dev uint64, lastActive *int64) { function loadConfig (line 121) | func loadConfig(path string) (string, *vfs.Config, error) { function watchdog (line 136) | func watchdog(ctx context.Context, mp string) { function parseFuseFd (line 196) | func parseFuseFd(mountPoint string) (fd int) { function checkMountpoint (line 208) | func checkMountpoint(name, mp, logPath string, background bool) { function checkSvcPort (line 255) | func checkSvcPort(address string) { function makeDaemonForSvc (line 273) | func makeDaemonForSvc(c *cli.Context, m meta.Meta, metaUrl, listenAddr s... function getDaemonStage (line 311) | func getDaemonStage() int { function fuseFlags (line 315) | func fuseFlags() []cli.Flag { function mountFlags (line 366) | func mountFlags() []cli.Flag { function disableUpdatedb (line 410) | func disableUpdatedb() { function getFuserMountVersion (line 457) | func getFuserMountVersion() string { function setFuseOption (line 467) | func setFuseOption(c *cli.Context, format *meta.Format, vfsConf *vfs.Con... function genFuseOpt (line 473) | func genFuseOpt(c *cli.Context, name string) string { function prepareMp (line 497) | func prepareMp(mp string) { function genFuseOptExt (line 556) | func genFuseOptExt(c *cli.Context, format *meta.Format) (fuseOpt string,... function shutdownGraceful (line 564) | func shutdownGraceful(mp string) { function canShutdownGracefully (line 597) | func canShutdownGracefully(mp string, newConf *vfs.Config) bool { function absPath (line 644) | func absPath(d string) string { function buildBoolFlagsMap (line 662) | func buildBoolFlagsMap(c *cli.Context) map[string]bool { function tellFstabOptions (line 682) | func tellFstabOptions(c *cli.Context) string { function updateFstab (line 715) | func updateFstab(c *cli.Context) error { function tryToInstallMountExec (line 762) | func tryToInstallMountExec() error { function fixCacheDirs (line 773) | func fixCacheDirs(c *cli.Context) { function makeDaemon (line 789) | func makeDaemon(c *cli.Context, conf *vfs.Config) error { function increaseRlimit (line 826) | func increaseRlimit() { function installHandler (line 838) | func installHandler(m meta.Meta, mp string, v *vfs.VFS, blob object.Obje... function launchMount (line 876) | func launchMount(c *cli.Context, mp string, conf *vfs.Config) error { function getNobodyUIDGID (line 974) | func getNobodyUIDGID() (uint32, uint32) { function parseUIDGID (line 993) | func parseUIDGID(input string, defaultUid uint32, defaultGid uint32) (ui... function mountMain (line 1021) | func mountMain(v *vfs.VFS, c *cli.Context) { FILE: cmd/mount_windows.go function mountFlags (line 33) | func mountFlags() []cli.Flag { function makeDaemon (line 133) | func makeDaemon(c *cli.Context, conf *vfs.Config) error { function makeDaemonForSvc (line 149) | func makeDaemonForSvc(c *cli.Context, m meta.Meta, metaUrl, listenAddr s... function getDaemonStage (line 154) | func getDaemonStage() int { function mountMain (line 158) | func mountMain(v *vfs.VFS, c *cli.Context) { function checkMountpoint (line 176) | func checkMountpoint(name, mp, logPath string, background bool) {} function prepareMp (line 178) | func prepareMp(mp string) {} function setFuseOption (line 180) | func setFuseOption(c *cli.Context, format *meta.Format, vfsConf *vfs.Con... function launchMount (line 182) | func launchMount(c *cli.Context, mp string, conf *vfs.Config) error { re... function installHandler (line 184) | func installHandler(m meta.Meta, mp string, v *vfs.VFS, blob object.Obje... function tryToInstallMountExec (line 186) | func tryToInstallMountExec() error { return nil } function updateFstab (line 188) | func updateFstab(c *cli.Context) error { return nil } FILE: cmd/objbench.go function cmdObjbench (line 44) | func cmdObjbench() *cli.Command { type warning (line 129) | type warning function objbench (line 134) | func objbench(ctx *cli.Context) error { function colorize (line 429) | func colorize(item string, value, cost float64, prec int, colorful bool)... type apiInfo (line 463) | type apiInfo struct type benchMarkObj (line 471) | type benchMarkObj struct method run (line 479) | func (bm *benchMarkObj) run(ctx context.Context, api apiInfo) []string { method put (line 571) | func (bm *benchMarkObj) put(ctx context.Context, key string, startKey ... method smallPut (line 582) | func (bm *benchMarkObj) smallPut(ctx context.Context, key string, star... method get (line 633) | func (bm *benchMarkObj) get(ctx context.Context, key string, startKey ... method smallGet (line 639) | func (bm *benchMarkObj) smallGet(ctx context.Context, key string, star... method delete (line 645) | func (bm *benchMarkObj) delete(ctx context.Context, key string, startK... method head (line 649) | func (bm *benchMarkObj) head(ctx context.Context, key string, startKey... method list (line 654) | func (bm *benchMarkObj) list(ctx context.Context, key string, startKey... method chown (line 661) | func (bm *benchMarkObj) chown(ctx context.Context, key string, startKe... method chmod (line 665) | func (bm *benchMarkObj) chmod(ctx context.Context, key string, startKe... method chtimes (line 669) | func (bm *benchMarkObj) chtimes(ctx context.Context, key string, start... function getMockData (line 555) | func getMockData(seed []byte, idx int, result *[]byte) { function getAndCheckN (line 594) | func getAndCheckN(ctx context.Context, blob object.ObjectStorage, key st... function listAll (line 673) | func listAll(ctx context.Context, s object.ObjectStorage, prefix, marker... function functionalTesting (line 694) | func functionalTesting(ctx context.Context, blob object.ObjectStorage, r... FILE: cmd/object.go function toError (line 50) | func toError(eno syscall.Errno) error { type juiceFS (line 57) | type juiceFS struct method String (line 64) | func (j *juiceFS) String() string { method path (line 68) | func (j *juiceFS) path(key string) string { method Get (line 101) | func (j *juiceFS) Get(rCtx context.Context, key string, off, limit int... method Put (line 123) | func (j *juiceFS) Put(rCtx context.Context, key string, in io.Reader, ... method Delete (line 186) | func (j *juiceFS) Delete(rCtx context.Context, key string, getters ...... method Head (line 220) | func (j *juiceFS) Head(rCtx context.Context, key string) (object.Objec... method List (line 243) | func (j *juiceFS) List(ctx context.Context, prefix, marker, token, del... method readDirSorted (line 297) | func (j *juiceFS) readDirSorted(dirname string, followLink bool) ([]*m... method Chtimes (line 331) | func (j *juiceFS) Chtimes(key string, mtime time.Time) error { method Chmod (line 356) | func (j *juiceFS) Chmod(key string, mode os.FileMode) error { method Chown (line 365) | func (j *juiceFS) Chown(key string, owner, group string) error { method Symlink (line 379) | func (j *juiceFS) Symlink(oldName, newName string) error { method Readlink (line 391) | func (j *juiceFS) Readlink(name string) (string, error) { method Shutdown (line 412) | func (j *juiceFS) Shutdown() { type jFile (line 72) | type jFile struct method Read (line 77) | func (f *jFile) Read(buf []byte) (int, error) { method Write (line 92) | func (f *jFile) Write(buf []byte) (int, error) { method Close (line 97) | func (f *jFile) Close() error { type jObj (line 199) | type jObj struct method Key (line 205) | func (o *jObj) Key() string { return o.key } method Size (line 206) | func (o *jObj) Size() int64 { method Mtime (line 212) | func (o *jObj) Mtime() time.Time { return o.fi.ModTime() } method IsDir (line 213) | func (o *jObj) IsDir() bool { return o.fi.IsDir() } method IsSymlink (line 214) | func (o *jObj) IsSymlink() bool { return o.isSymlink } method Owner (line 215) | func (o *jObj) Owner() string { return utils.UserName(o.fi.Uid(... method Group (line 216) | func (o *jObj) Group() string { return utils.GroupName(o.fi.Gid... method Mode (line 217) | func (o *jObj) Mode() os.FileMode { return o.fi.Mode() } method StorageClass (line 218) | func (o *jObj) StorageClass() string { return "" } type mEntry (line 289) | type mEntry struct function syscallMode (line 341) | func syscallMode(i os.FileMode) (o uint32) { function getDefaultChunkConf (line 396) | func getDefaultChunkConf(format *meta.Format) *chunk.Config { function newJFS (line 416) | func newJFS(endpoint, accessKey, secretKey, token string) (object.Object... function init (line 470) | func init() { FILE: cmd/object_test.go function testKeysEqual (line 36) | func testKeysEqual(objs []object.Object, expectedKeys []string) error { function testFileSystem (line 56) | func testFileSystem(t *testing.T, s object.ObjectStorage) { function TestJFS (line 169) | func TestJFS(t *testing.T) { FILE: cmd/passfd.go function getFd (line 40) | func getFd(via *net.UnixConn, num int) ([]byte, []int, error) { function putFd (line 85) | func putFd(via *net.UnixConn, msg []byte, fds ...int) error { function handleFDRequest (line 105) | func handleFDRequest(conn *net.UnixConn) { function serveFuseFD (line 151) | func serveFuseFD(path string) { function getFuseFd (line 177) | func getFuseFd(path string) (int, []byte) { function sendFuseFd (line 202) | func sendFuseFd(path string, msg []byte, fd int) error { FILE: cmd/printsid.go function cmdPrintSID (line 11) | func cmdPrintSID() *cli.Command { function printSID (line 21) | func printSID(ctx *cli.Context) error { FILE: cmd/profile.go function cmdProfile (line 35) | func cmdProfile() *cli.Command { type profiler (line 91) | type profiler struct method reader (line 183) | func (p *profiler) reader() { method isWinFuseLog (line 197) | func (p *profiler) isWinFuseLog() bool { method isValid (line 201) | func (p *profiler) isValid(entry *logEntry) bool { method counter (line 216) | func (p *profiler) counter() { method fastCounter (line 255) | func (p *profiler) fastCounter() { method flush (line 306) | func (p *profiler) flush(timeStamp time.Time, keyStats []keyStat, done... method flusher (line 329) | func (p *profiler) flusher() { type stat (line 108) | type stat struct type keyStat (line 113) | type keyStat struct type logEntry (line 118) | type logEntry struct function parseLine (line 126) | func parseLine(line string, winFuseLog bool) *logEntry { function colorize1 (line 282) | func colorize1(msg string, color int) string { function printLines (line 286) | func printLines(lines []string, colorful bool) { function profile (line 371) | func profile(ctx *cli.Context) error { FILE: cmd/quota.go function cmdQuota (line 32) | func cmdQuota() *cli.Command { function quota (line 123) | func quota(c *cli.Context) error { FILE: cmd/restore.go function cmdRestore (line 18) | func cmdRestore() *cli.Command { function restore (line 44) | func restore(ctx *cli.Context) error { function doRestore (line 65) | func doRestore(m meta.Meta, hour string, putBack bool, threads int) { FILE: cmd/restore_test.go function TestRestore (line 11) | func TestRestore(t *testing.T) { function TestRestorePutBack (line 58) | func TestRestorePutBack(t *testing.T) { FILE: cmd/rmr.go function cmdRmr (line 30) | func cmdRmr() *cli.Command { function openController (line 57) | func openController(dpath string) (*os.File, error) { function rmr (line 72) | func rmr(ctx *cli.Context) error { FILE: cmd/rmr_test.go function TestRmr (line 25) | func TestRmr(t *testing.T) { FILE: cmd/stats.go function cmdStats (line 32) | func cmdStats() *cli.Command { constant BLACK (line 75) | BLACK = 30 + iota constant RED (line 76) | RED constant GREEN (line 77) | GREEN constant YELLOW (line 78) | YELLOW constant BLUE (line 79) | BLUE constant MAGENTA (line 80) | MAGENTA constant CYAN (line 81) | CYAN constant WHITE (line 82) | WHITE constant DEFAULT (line 83) | DEFAULT = "00" constant RESET_SEQ (line 87) | RESET_SEQ = "\033[0m" constant COLOR_SEQ (line 88) | COLOR_SEQ = "\033[1;" constant COLOR_DARK_SEQ (line 89) | COLOR_DARK_SEQ = "\033[0;" constant UNDERLINE_SEQ (line 90) | UNDERLINE_SEQ = "\033[4m" constant CLEAR_SCREEM (line 91) | CLEAR_SCREEM = "\033[2J\033[1;1H" constant UNIXTIME_FMT (line 92) | UNIXTIME_FMT = "01-02 15:04:05" type statsWatcher (line 96) | type statsWatcher struct method colorize (line 104) | func (w *statsWatcher) colorize(msg string, color int, dark bool, unde... method buildSchema (line 142) | func (w *statsWatcher) buildSchema(schema string, verbosity uint) { method formatHeader (line 217) | func (w *statsWatcher) formatHeader() { method formatU64 (line 247) | func (w *statsWatcher) formatU64(v float64, dark, isByte bool) string { method formatTime (line 277) | func (w *statsWatcher) formatTime(v float64, dark bool) string { method formatCPU (line 295) | func (w *statsWatcher) formatCPU(v float64, dark bool) string { method printDiff (line 312) | func (w *statsWatcher) printDiff(left, right map[string]float64, dark ... constant metricByte (line 121) | metricByte = 1 << iota constant metricCount (line 122) | metricCount constant metricTime (line 123) | metricTime constant metricCPU (line 124) | metricCPU constant metricGauge (line 125) | metricGauge constant metricCounter (line 126) | metricCounter constant metricHist (line 127) | metricHist constant metricUnixtime (line 128) | metricUnixtime type item (line 131) | type item struct type section (line 137) | type section struct function padding (line 199) | func padding(name string, width int, char byte) string { function readStats (line 366) | func readStats(mp string) map[string]float64 { function stats (line 396) | func stats(ctx *cli.Context) error { FILE: cmd/status.go function cmdStatus (line 28) | func cmdStatus() *cli.Command { function printJson (line 58) | func printJson(v interface{}) { function status (line 66) | func status(ctx *cli.Context) error { FILE: cmd/status_test.go function TestStatus (line 28) | func TestStatus(t *testing.T) { FILE: cmd/summary.go function cmdSummary (line 35) | func cmdSummary() *cli.Command { function summary (line 83) | func summary(ctx *cli.Context) error { function printCSVResult (line 163) | func printCSVResult(results [][]string) { function renderTree (line 176) | func renderTree(results *[][]string, tree *meta.TreeSummary, csv bool) { FILE: cmd/sync.go function cmdSync (line 40) | func cmdSync() *cli.Command { function selectionFlags (line 102) | func selectionFlags() []cli.Flag { function syncActionFlags (line 181) | func syncActionFlags() []cli.Flag { function syncStorageFlags (line 238) | func syncStorageFlags() []cli.Flag { function clusterFlags (line 275) | func clusterFlags() []cli.Flag { function supportHTTPS (line 293) | func supportHTTPS(name, endpoint string) bool { function isFilePath (line 311) | func isFilePath(uri string) bool { function extractToken (line 321) | func extractToken(uri string) (string, string) { function createSyncStorage (line 328) | func createSyncStorage(uri string, conf *sync.Config) (object.ObjectStor... function isS3PathType (line 452) | func isS3PathType(endpoint string) bool { function doSync (line 458) | func doSync(c *cli.Context) error { FILE: cmd/sync_test.go function TestSync (line 29) | func TestSync(t *testing.T) { function Test_isS3PathType (line 67) | func Test_isS3PathType(t *testing.T) { function Test_extractToken (line 96) | func Test_extractToken(t *testing.T) { FILE: cmd/umount.go function cmdUmount (line 36) | func cmdUmount() *cli.Command { function doUmount (line 60) | func doUmount(mp string, force bool) error { function umount (line 100) | func umount(ctx *cli.Context) error { function waitWritebackComplete (line 135) | func waitWritebackComplete(stagingDir string) error { function fileSizeInDir (line 177) | func fileSizeInDir(dir string) (uint64, error) { function clearLastLine (line 191) | func clearLastLine() { FILE: cmd/version.go function cmdVersion (line 25) | func cmdVersion() *cli.Command { FILE: cmd/warmup.go function cmdWarmup (line 41) | func cmdWarmup() *cli.Command { constant batchMax (line 91) | batchMax = 10240 constant maxInterval (line 93) | maxInterval = 300 constant minInterval (line 94) | minInterval = 1 function readControl (line 98) | func readControl(cf *os.File, resp []byte) int { function readProgress (line 117) | func readProgress(cf *os.File, showProgress func(uint64, uint64)) (data ... function sendCommand (line 156) | func sendCommand(cf *os.File, action vfs.CacheAction, batch []string, th... function warmup (line 200) | func warmup(ctx *cli.Context) error { FILE: cmd/warmup_test.go function TestWarmup (line 29) | func TestWarmup(t *testing.T) { FILE: cmd/webdav.go function cmdWebDav (line 31) | func cmdWebDav() *cli.Command { function webdav (line 95) | func webdav(c *cli.Context) error { FILE: cmd/webdav_noop.go function cmdWebDav (line 28) | func cmdWebDav() *cli.Command { FILE: hack/winfsp_headers/fuse.h type fuse (line 36) | struct fuse type fuse_stat (line 39) | struct fuse_stat type fuse_dirhandle (line 40) | struct fuse_dirhandle type fuse_operations (line 44) | struct fuse_operations type fuse_context (line 124) | struct fuse_context type fsp_fuse_env (line 137) | struct fsp_fuse_env type fuse_operations (line 139) | struct fuse_operations type fsp_fuse_env (line 140) | struct fsp_fuse_env type fsp_fuse_env (line 142) | struct fsp_fuse_env type fuse_chan (line 143) | struct fuse_chan type fuse_args (line 143) | struct fuse_args type fuse_operations (line 144) | struct fuse_operations type fsp_fuse_env (line 145) | struct fsp_fuse_env type fuse (line 146) | struct fuse type fsp_fuse_env (line 147) | struct fsp_fuse_env type fuse (line 148) | struct fuse type fsp_fuse_env (line 149) | struct fsp_fuse_env type fuse (line 150) | struct fuse type fsp_fuse_env (line 151) | struct fsp_fuse_env type fuse (line 152) | struct fuse type fsp_fuse_env (line 153) | struct fsp_fuse_env type fuse (line 154) | struct fuse type fsp_fuse_env (line 155) | struct fsp_fuse_env type fuse_operations (line 159) | struct fuse_operations type fuse (line 173) | struct fuse type fuse_chan (line 173) | struct fuse_chan type fuse_args (line 173) | struct fuse_args type fuse_operations (line 174) | struct fuse_operations type fuse (line 181) | struct fuse type fuse (line 188) | struct fuse type fuse (line 195) | struct fuse type fuse (line 202) | struct fuse type fuse (line 209) | struct fuse type fuse_context (line 216) | struct fuse_context type fuse (line 237) | struct fuse type fuse_pollhandle (line 245) | struct fuse_pollhandle type fuse_session (line 252) | struct fuse_session type fuse (line 252) | struct fuse type fuse_session (line 254) | struct fuse_session FILE: hack/winfsp_headers/fuse_common.h type fuse_file_info (line 82) | struct fuse_file_info type fuse_conn_info (line 96) | struct fuse_conn_info type fuse_session (line 108) | struct fuse_session type fuse_chan (line 109) | struct fuse_chan type fuse_pollhandle (line 110) | struct fuse_pollhandle type fuse_bufvec (line 111) | struct fuse_bufvec type fuse_statfs (line 112) | struct fuse_statfs type fuse_setattr_x (line 113) | struct fuse_setattr_x type fsp_fuse_env (line 115) | struct fsp_fuse_env type fsp_fuse_env (line 116) | struct fsp_fuse_env type fuse_args (line 117) | struct fuse_args type fsp_fuse_env (line 118) | struct fsp_fuse_env type fuse_chan (line 119) | struct fuse_chan type fsp_fuse_env (line 120) | struct fsp_fuse_env type fuse_args (line 121) | struct fuse_args type fsp_fuse_env (line 123) | struct fsp_fuse_env type fuse_chan (line 134) | struct fuse_chan type fuse_args (line 134) | struct fuse_args type fuse_chan (line 141) | struct fuse_chan type fuse_args (line 148) | struct fuse_args type fuse_pollhandle (line 156) | struct fuse_pollhandle type fuse_session (line 168) | struct fuse_session type fuse_session (line 174) | struct fuse_session FILE: hack/winfsp_headers/fuse_opt.h type fuse_opt (line 46) | struct fuse_opt type fuse_args (line 53) | struct fuse_args type fuse_args (line 61) | struct fuse_args type fsp_fuse_env (line 63) | struct fsp_fuse_env type fuse_args (line 64) | struct fuse_args type fuse_opt (line 65) | struct fuse_opt type fsp_fuse_env (line 66) | struct fsp_fuse_env type fuse_args (line 67) | struct fuse_args type fsp_fuse_env (line 68) | struct fsp_fuse_env type fuse_args (line 69) | struct fuse_args type fsp_fuse_env (line 70) | struct fsp_fuse_env type fuse_args (line 71) | struct fuse_args type fsp_fuse_env (line 72) | struct fsp_fuse_env type fsp_fuse_env (line 74) | struct fsp_fuse_env type fsp_fuse_env (line 76) | struct fsp_fuse_env type fuse_opt (line 77) | struct fuse_opt type fuse_args (line 80) | struct fuse_args type fuse_opt (line 81) | struct fuse_opt type fuse_args (line 88) | struct fuse_args type fuse_args (line 95) | struct fuse_args type fuse_args (line 102) | struct fuse_args type fuse_opt (line 123) | struct fuse_opt FILE: hack/winfsp_headers/winfsp_fuse.h type fuse_uid_t (line 106) | typedef uint32_t fuse_uid_t; type fuse_gid_t (line 107) | typedef uint32_t fuse_gid_t; type fuse_pid_t (line 108) | typedef int32_t fuse_pid_t; type fuse_dev_t (line 110) | typedef uint32_t fuse_dev_t; type fuse_ino_t (line 111) | typedef uint64_t fuse_ino_t; type fuse_mode_t (line 112) | typedef uint32_t fuse_mode_t; type fuse_nlink_t (line 113) | typedef uint16_t fuse_nlink_t; type fuse_off_t (line 114) | typedef int64_t fuse_off_t; type fuse_fsblkcnt_t (line 117) | typedef uint64_t fuse_fsblkcnt_t; type fuse_fsfilcnt_t (line 118) | typedef uint64_t fuse_fsfilcnt_t; type fuse_fsblkcnt_t (line 120) | typedef uint32_t fuse_fsblkcnt_t; type fuse_fsfilcnt_t (line 121) | typedef uint32_t fuse_fsfilcnt_t; type fuse_blksize_t (line 123) | typedef int32_t fuse_blksize_t; type fuse_blkcnt_t (line 124) | typedef int64_t fuse_blkcnt_t; type fuse_utimbuf (line 127) | struct fuse_utimbuf type fuse_timespec (line 132) | struct fuse_timespec type fuse_utimbuf (line 138) | struct fuse_utimbuf type fuse_timespec (line 143) | struct fuse_timespec type fuse_stat (line 156) | struct fuse_stat FILE: main.go function main (line 28) | func main() { FILE: pkg/acl/acl.go constant Version (line 26) | Version uint8 = 2 type Entry (line 28) | type Entry struct type Entries (line 33) | type Entries method Len (line 35) | func (es *Entries) Len() int { return len(*es) } method Less (line 36) | func (es *Entries) Less(i, j int) bool { return (*es)[i].Id < (*es)[j]... method Swap (line 37) | func (es *Entries) Swap(i, j int) { (*es)[i], (*es)[j] = (*es)[j]... method IsEqual (line 39) | func (es *Entries) IsEqual(other *Entries) bool { method Encode (line 51) | func (es *Entries) Encode() []byte { method Decode (line 60) | func (es *Entries) Decode(data []byte) { type Rule (line 71) | type Rule struct method String (line 80) | func (r *Rule) String() string { method Dup (line 85) | func (r *Rule) Dup() *Rule { method Encode (line 94) | func (r *Rule) Encode() []byte { method Decode (line 113) | func (r *Rule) Decode(buf []byte) { method IsEmpty (line 143) | func (r *Rule) IsEmpty() bool { method IsMinimal (line 149) | func (r *Rule) IsMinimal() bool { method IsEqual (line 153) | func (r *Rule) IsEqual(other *Rule) bool { method InheritPerms (line 163) | func (r *Rule) InheritPerms(mode uint16) { method SetMode (line 175) | func (r *Rule) SetMode(mode uint16) { method GetMode (line 190) | func (r *Rule) GetMode() uint16 { method ChildAccessACL (line 198) | func (r *Rule) ChildAccessACL(mode uint16) *Rule { method Checksum (line 212) | func (r *Rule) Checksum() uint32 { method CanAccess (line 216) | func (r *Rule) CanAccess(uid uint32, gids []uint32, fUid, fGid uint32,... function EmptyRule (line 134) | func EmptyRule() *Rule { constant TypeNone (line 253) | TypeNone = iota constant TypeAccess (line 254) | TypeAccess constant TypeDefault (line 255) | TypeDefault FILE: pkg/acl/cache.go constant None (line 23) | None = 0 type Cache (line 30) | type Cache interface function NewCache (line 40) | func NewCache() Cache { type cache (line 49) | type cache struct method GetAll (line 56) | func (c *cache) GetAll() map[uint32]*Rule { method Clear (line 67) | func (c *cache) Clear() { method GetMissIds (line 76) | func (c *cache) GetMissIds() []uint32 { method Size (line 94) | func (c *cache) Size() int { method Get (line 100) | func (c *cache) Get(id uint32) *Rule { method Put (line 109) | func (c *cache) Put(id uint32, r *Rule) { method GetId (line 132) | func (c *cache) GetId(r *Rule) uint32 { FILE: pkg/acl/cache_test.go function TestCache (line 25) | func TestCache(t *testing.T) { FILE: pkg/chunk/cache_eviction.go constant EvictionNone (line 27) | EvictionNone = "none" constant Eviction2Random (line 28) | Eviction2Random = "2-random" constant EvictionLRU (line 29) | EvictionLRU = "lru" constant notInLru (line 32) | notInLru = math.MinInt type cacheItem (line 34) | type cacheItem struct type KeyIndex (line 39) | type KeyIndex interface function NewKeyIndex (line 54) | func NewKeyIndex(config *Config) (KeyIndex, error) { type noneEviction (line 74) | type noneEviction struct method name (line 78) | func (p *noneEviction) name() string { method add (line 82) | func (p *noneEviction) add(key cacheKey, item cacheItem) { method remove (line 86) | func (p *noneEviction) remove(key cacheKey, staging bool) *cacheItem { method get (line 98) | func (p *noneEviction) get(key cacheKey) *cacheItem { method peekAtime (line 107) | func (p *noneEviction) peekAtime(key cacheKey) uint32 { method len (line 111) | func (p *noneEviction) len() int { method reset (line 115) | func (p *noneEviction) reset() KeyIndex { method randomIter (line 121) | func (p *noneEviction) randomIter() func(yield func(key cacheKey, item... method evictionIter (line 131) | func (p *noneEviction) evictionIter() func(yield func(key cacheKey, it... type randomEviction (line 136) | type randomEviction struct method name (line 141) | func (p *randomEviction) name() string { method reset (line 145) | func (p *randomEviction) reset() KeyIndex { method evictionIter (line 154) | func (p *randomEviction) evictionIter() func(yield func(key cacheKey, ... type lruItem (line 185) | type lruItem struct type atimeHeap (line 191) | type atimeHeap method Len (line 198) | func (h atimeHeap) Len() int { return len(h) } method Less (line 200) | func (h atimeHeap) Less(i, j int) bool { // min-heap method Swap (line 210) | func (h atimeHeap) Swap(i, j int) { method Push (line 216) | func (h *atimeHeap) Push(x any) { method Pop (line 222) | func (h *atimeHeap) Pop() any { type heapItem (line 193) | type heapItem struct type lruEviction (line 232) | type lruEviction struct method name (line 237) | func (p *lruEviction) name() string { method add (line 241) | func (p *lruEviction) add(key cacheKey, item cacheItem) { method remove (line 260) | func (p *lruEviction) remove(key cacheKey, staging bool) *cacheItem { method get (line 275) | func (p *lruEviction) get(key cacheKey) *cacheItem { method peekAtime (line 287) | func (p *lruEviction) peekAtime(key cacheKey) uint32 { method len (line 294) | func (p *lruEviction) len() int { method reset (line 298) | func (p *lruEviction) reset() KeyIndex { method randomIter (line 308) | func (p *lruEviction) randomIter() func(yield func(key cacheKey, item ... method evictionIter (line 318) | func (p *lruEviction) evictionIter() func(yield func(key cacheKey, ite... method verifyHeap (line 335) | func (p *lruEviction) verifyHeap() bool { FILE: pkg/chunk/cached_store.go constant chunkSize (line 40) | chunkSize = 1 << 26 constant pageSize (line 41) | pageSize = 1 << 16 constant SlowRequest (line 42) | SlowRequest = time.Second * time.Duration(10) type pendingItem (line 48) | type pendingItem struct type rSlice (line 56) | type rSlice struct method blockSize (line 66) | func (s *rSlice) blockSize(indx int) int { method key (line 74) | func (s *rSlice) key(indx int) string { method index (line 81) | func (s *rSlice) index(off int) int { method keys (line 85) | func (s *rSlice) keys() []string { method ReadAt (line 97) | func (s *rSlice) ReadAt(ctx context.Context, page *Page, off int) (n i... method delete (line 182) | func (s *rSlice) delete(indx int) error { method Remove (line 187) | func (s *rSlice) Remove() error { function sliceForRead (line 62) | func sliceForRead(id uint64, length int, store *cachedStore) *rSlice { function allocPage (line 213) | func allocPage(sz int) *Page { function freePage (line 225) | func freePage(p *Page) { type wSlice (line 238) | type wSlice struct method SetID (line 257) | func (s *wSlice) SetID(id uint64) { method SetWriteback (line 261) | func (s *wSlice) SetWriteback(enabled bool) { method WriteAt (line 265) | func (s *wSlice) WriteAt(p []byte, off int64) (n int, err error) { method upload (line 398) | func (s *wSlice) upload(indx int) { method ID (line 468) | func (s *wSlice) ID() uint64 { method Len (line 472) | func (s *wSlice) Len() int { method FlushTo (line 476) | func (s *wSlice) FlushTo(offset int) error { method Finish (line 494) | func (s *wSlice) Finish(length int) error { method Abort (line 512) | func (s *wSlice) Abort() { function sliceForWrite (line 248) | func sliceForWrite(id uint64, store *cachedStore) *wSlice { type Config (line 525) | type Config struct method SelfCheck (line 559) | func (c *Config) SelfCheck(uuid string) { method parseHours (line 634) | func (c *Config) parseHours() (start, end int, err error) { method CacheEnabled (line 659) | func (c *Config) CacheEnabled() bool { type cachedStore (line 663) | type cachedStore struct method put (line 310) | func (store *cachedStore) put(key string, p *Page) error { method delete (line 334) | func (store *cachedStore) delete(key string) error { method upload (line 354) | func (store *cachedStore) upload(key string, block *Page, s *wSlice) e... method loadRange (line 703) | func (store *cachedStore) loadRange(ctx context.Context, key string, p... method load (line 752) | func (store *cachedStore) load(ctx context.Context, key string, page *... method initMetrics (line 928) | func (store *cachedStore) initMetrics() { method regMetrics (line 973) | func (store *cachedStore) regMetrics(reg prometheus.Registerer) { method shouldCache (line 1015) | func (store *cachedStore) shouldCache(size int) bool { method uploadStagingFile (line 1025) | func (store *cachedStore) uploadStagingFile(key string, stagingPath st... method addDelayedStaging (line 1085) | func (store *cachedStore) addDelayedStaging(key, stagingPath string, a... method removePending (line 1108) | func (store *cachedStore) removePending(key string) { method isPendingValid (line 1114) | func (store *cachedStore) isPendingValid(key string) bool { method scanDelayedStaging (line 1121) | func (store *cachedStore) scanDelayedStaging() { method uploader (line 1137) | func (store *cachedStore) uploader() { method canUpload (line 1143) | func (store *cachedStore) canUpload() bool { method NewReader (line 1152) | func (store *cachedStore) NewReader(id uint64, length int) Reader { method NewWriter (line 1156) | func (store *cachedStore) NewWriter(id uint64) Writer { method Remove (line 1160) | func (store *cachedStore) Remove(id uint64, length int) error { method FillCache (line 1165) | func (store *cachedStore) FillCache(id uint64, length uint32) error { method EvictCache (line 1188) | func (store *cachedStore) EvictCache(id uint64, length uint32) error { method CheckCache (line 1197) | func (store *cachedStore) CheckCache(id uint64, length uint32, handler... method UsedMemory (line 1211) | func (store *cachedStore) UsedMemory() int64 { method UpdateLimit (line 1215) | func (store *cachedStore) UpdateLimit(upload, download int64) { function logRequest (line 693) | func logRequest(typeStr, key, param, reqID string, err error, used time.... function NewCachedStore (line 823) | func NewCachedStore(storage object.ObjectStorage, config Config, reg pro... function parseObjOrigSize (line 1019) | func parseObjOrigSize(key string) int { FILE: pkg/chunk/cached_store_test.go function forgetSlice (line 36) | func forgetSlice(store ChunkStore, sliceId uint64, size int) error { function testStore (line 45) | func testStore(t *testing.T, store ChunkStore) { function TestStoreDefault (line 121) | func TestStoreDefault(t *testing.T) { function TestStoreMemCache (line 134) | func TestStoreMemCache(t *testing.T) { function TestStoreCompressed (line 147) | func TestStoreCompressed(t *testing.T) { function TestStoreLimited (line 156) | func TestStoreLimited(t *testing.T) { function TestStoreFull (line 165) | func TestStoreFull(t *testing.T) { function TestStoreSmallBuffer (line 173) | func TestStoreSmallBuffer(t *testing.T) { function TestStoreAsync (line 181) | func TestStoreAsync(t *testing.T) { function TestForceUpload (line 203) | func TestForceUpload(t *testing.T) { function TestStoreDelayed (line 254) | func TestStoreDelayed(t *testing.T) { function TestStoreMultiBuckets (line 272) | func TestStoreMultiBuckets(t *testing.T) { function TestFillCache (line 280) | func TestFillCache(t *testing.T) { function BenchmarkCachedRead (line 346) | func BenchmarkCachedRead(b *testing.B) { function BenchmarkUncachedRead (line 369) | func BenchmarkUncachedRead(b *testing.B) { type dStore (line 392) | type dStore struct method Get (line 397) | func (s *dStore) Get(ctx context.Context, key string, off, limit int64... function TestStoreRetry (line 402) | func TestStoreRetry(t *testing.T) { FILE: pkg/chunk/chunk.go type Reader (line 24) | type Reader interface type Writer (line 28) | type Writer interface type ChunkStore (line 38) | type ChunkStore interface FILE: pkg/chunk/disk_cache.go type cacheKey (line 59) | type cacheKey struct method String (line 65) | func (k cacheKey) String() string { return fmt.Sprintf("%d_%d_%d", k.i... type pendingFile (line 67) | type pendingFile struct type cacheStore (line 73) | type cacheStore struct method setLimitByFreeRatio (line 171) | func (cache *cacheStore) setLimitByFreeRatio(usage DiskFreeRatio, free... method lockFilePath (line 194) | func (cache *cacheStore) lockFilePath() string { method createLockFile (line 198) | func (cache *cacheStore) createLockFile() { method checkLockFile (line 226) | func (cache *cacheStore) checkLockFile() { method available (line 240) | func (c *cacheStore) available() bool { method enabled (line 244) | func (c *cacheStore) enabled() bool { method full (line 248) | func (c *cacheStore) full() bool { method checkErr (line 252) | func (cache *cacheStore) checkErr(f func() error) error { method checkTimeout (line 286) | func (c *cacheStore) checkTimeout() { method statFile (line 303) | func (c *cacheStore) statFile(path string) error { method removeFile (line 310) | func (cache *cacheStore) removeFile(path string) error { method renameFile (line 316) | func (cache *cacheStore) renameFile(oldpath, newpath string) error { method writeFile (line 322) | func (cache *cacheStore) writeFile(f *os.File, data []byte) error { method closeFile (line 329) | func (cache *cacheStore) closeFile(f *os.File) error { method usedMemory (line 335) | func (cache *cacheStore) usedMemory() int64 { method stats (line 339) | func (cache *cacheStore) stats() (int64, int64) { method checkFreeSpace (line 345) | func (cache *cacheStore) checkFreeSpace() { method cleanupExpire (line 366) | func (cache *cacheStore) cleanupExpire() { method refreshCacheKeys (line 410) | func (cache *cacheStore) refreshCacheKeys() { method removeStage (line 423) | func (cache *cacheStore) removeStage(key string) error { method cache (line 436) | func (cache *cacheStore) cache(key string, p *Page, force, dropCache b... method curFreeRatio (line 483) | func (cache *cacheStore) curFreeRatio() DiskFreeRatio { method flushPage (line 502) | func (cache *cacheStore) flushPage(path string, data []byte, dropCache... method createDir (line 557) | func (cache *cacheStore) createDir(dir string) { method getCacheKey (line 579) | func (cache *cacheStore) getCacheKey(key string) cacheKey { method getPathFromKey (line 610) | func (cache *cacheStore) getPathFromKey(k cacheKey) string { method remove (line 618) | func (cache *cacheStore) remove(key string, staging bool) { method load (line 644) | func (cache *cacheStore) load(key string) (ReadCloser, error) { method exist (line 675) | func (cache *cacheStore) exist(key string) (bool, error) { method cachePath (line 704) | func (cache *cacheStore) cachePath(key string) string { method stagePath (line 708) | func (cache *cacheStore) stagePath(key string) string { method flush (line 713) | func (cache *cacheStore) flush() { method add (line 732) | func (cache *cacheStore) add(key string, size int32, atime uint32) { method stage (line 759) | func (cache *cacheStore) stage(key string, data []byte) (string, error) { method uploaded (line 787) | func (cache *cacheStore) uploaded(key string, size int) { method cleanupFull (line 792) | func (cache *cacheStore) cleanupFull() { method uploadStaging (line 855) | func (cache *cacheStore) uploadStaging() { method scanCached (line 911) | func (cache *cacheStore) scanCached() { method scanStaging (line 969) | func (cache *cacheStore) scanStaging() { function newCacheStore (line 109) | func newCacheStore(m *cacheManagerMetrics, dir string, cacheSize, maxIte... function getFunctionName (line 282) | func getFunctionName(f interface{}) string { type DiskFreeRatio (line 475) | type DiskFreeRatio struct type cacheManager (line 1023) | type cacheManager struct method getMetrics (line 1136) | func (m *cacheManager) getMetrics() *cacheManagerMetrics { method cleanup (line 1140) | func (m *cacheManager) cleanup() { method isEmpty (line 1157) | func (m *cacheManager) isEmpty() bool { method length (line 1161) | func (m *cacheManager) length() int { method removeStore (line 1167) | func (m *cacheManager) removeStore(id string) { method getStore (line 1184) | func (m *cacheManager) getStore(key string) *cacheStore { method removeStage (line 1197) | func (m *cacheManager) removeStage(key string) error { method getStoreLegacy (line 1206) | func (m *cacheManager) getStoreLegacy(key string) *cacheStore { method usedMemory (line 1210) | func (m *cacheManager) usedMemory() int64 { method stats (line 1220) | func (m *cacheManager) stats() (int64, int64) { method cache (line 1232) | func (m *cacheManager) cache(key string, p *Page, force, dropCache boo... method load (line 1245) | func (m *cacheManager) load(key string) (ReadCloser, error) { method exist (line 1260) | func (m *cacheManager) exist(key string) (string, bool) { method remove (line 1277) | func (m *cacheManager) remove(key string, staging bool) { method stage (line 1284) | func (m *cacheManager) stage(key string, data []byte) (string, error) { method uploaded (line 1292) | func (m *cacheManager) uploaded(key string, size int) { function legacyKeyHash (line 1031) | func legacyKeyHash(s string) uint32 { function hasMeta (line 1039) | func hasMeta(path string) bool { function expandDir (line 1049) | func expandDir(pattern string) []string { type CacheManager (line 1076) | type CacheManager interface function newCacheManager (line 1090) | func newCacheManager(config *Config, reg prometheus.Registerer, uploader... type ReadCloser (line 1239) | type ReadCloser interface constant CsNone (line 1301) | CsNone = "none" constant CsFull (line 1302) | CsFull = "full" constant CsShrink (line 1303) | CsShrink = "shrink" constant CsExtend (line 1304) | CsExtend = "extend" constant csBlock (line 1306) | csBlock = 32 << 10 type cacheFile (line 1311) | type cacheFile struct method ReadAt (line 1354) | func (cf *cacheFile) ReadAt(b []byte, off int64) (n int, err error) { function checksum (line 1318) | func checksum(data []byte) []byte { function openCacheFile (line 1332) | func openCacheFile(name string, length int, level string) (*cacheFile, e... FILE: pkg/chunk/disk_cache_state.go constant dcUnknown (line 57) | dcUnknown = iota constant dcNormal (line 58) | dcNormal constant dcUnstable (line 59) | dcUnstable constant dcDown (line 60) | dcDown constant dcUnchanged (line 61) | dcUnchanged constant eventUnknown (line 65) | eventUnknown = iota constant eventToNormal (line 66) | eventToNormal constant eventToUnstable (line 67) | eventToUnstable constant eventToDown (line 68) | eventToDown type dcState (line 72) | type dcState interface type baseDC (line 84) | type baseDC struct method init (line 106) | func (dc *baseDC) init(cs *cacheStore) { method stop (line 111) | func (dc *baseDC) stop() { method onIOErr (line 114) | func (dc *baseDC) onIOErr() {} method onIOSucc (line 115) | func (dc *baseDC) onIOSucc() {} method state (line 116) | func (dc *baseDC) state() int { return dcUnknown } method tick (line 117) | func (dc *baseDC) tick() {} method checkCacheOp (line 118) | func (dc *baseDC) checkCacheOp() error { return nil } method beforeCacheOp (line 119) | func (dc *baseDC) beforeCacheOp() {} method afterCacheOp (line 120) | func (dc *baseDC) afterCacheOp() {} function newDCState (line 89) | func newDCState(state int, cs *cacheStore) dcState { type unchangedDC (line 122) | type unchangedDC struct method state (line 126) | func (dc *unchangedDC) state() int { return dcUnchanged } type normalDC (line 128) | type normalDC struct method state (line 133) | func (dc *normalDC) state() int { return dcNormal } method init (line 135) | func (dc *normalDC) init(cs *cacheStore) { method tick (line 140) | func (dc *normalDC) tick() { method onIOErr (line 153) | func (dc *normalDC) onIOErr() { type unstableDC (line 160) | type unstableDC struct method state (line 169) | func (dc *unstableDC) state() int { return dcUnstable } method init (line 171) | func (dc *unstableDC) init(cs *cacheStore) { method onIOErr (line 176) | func (dc *unstableDC) onIOErr() { method onIOSucc (line 181) | func (dc *unstableDC) onIOSucc() { method tick (line 189) | func (dc *unstableDC) tick() { method probe (line 214) | func (dc *unstableDC) probe() { method doProbe (line 235) | func (dc *unstableDC) doProbe(key string, page *Page) { method beforeCacheOp (line 246) | func (dc *unstableDC) beforeCacheOp() { dc.concurrency.Add(1) } method afterCacheOp (line 247) | func (dc *unstableDC) afterCacheOp() { dc.concurrency.Add(-1) } method checkCacheOp (line 249) | func (dc *unstableDC) checkCacheOp() error { function probeCacheKey (line 185) | func probeCacheKey(id, size int) string { type downDC (line 256) | type downDC struct method state (line 260) | func (dc *downDC) state() int { return dcDown } method checkCacheOp (line 261) | func (dc *downDC) checkCacheOp() error { return errCacheDown } method event (line 263) | func (cache *cacheStore) event(eventType int) { function getEnvs (line 286) | func getEnvs() { FILE: pkg/chunk/disk_cache_state_test.go function setState (line 31) | func setState(s *cacheStore, state int) { function testDiskCacheState (line 38) | func testDiskCacheState(t *testing.T, cacheNum int) { function TestDiskCacheState (line 115) | func TestDiskCacheState(t *testing.T) { FILE: pkg/chunk/disk_cache_test.go function toFloat64 (line 37) | func toFloat64(c prometheus.Collector) float64 { function testConf (line 76) | func testConf() Config { function TestNewCacheStore (line 82) | func TestNewCacheStore(t *testing.T) { function TestMetrics (line 91) | func TestMetrics(t *testing.T) { function TestScanCached (line 147) | func TestScanCached(t *testing.T) { function TestChecksum (line 173) | func TestChecksum(t *testing.T) { function TestExpand (line 281) | func TestExpand(t *testing.T) { function BenchmarkLoadCached (line 302) | func BenchmarkLoadCached(b *testing.B) { function BenchmarkLoadUncached (line 320) | func BenchmarkLoadUncached(b *testing.B) { function TestCheckPath (line 333) | func TestCheckPath(t *testing.T) { function shutdownStore (line 369) | func shutdownStore(s *cacheStore) { function TestCacheManager (line 376) | func TestCacheManager(t *testing.T) { function TestAtimeNotLost (line 442) | func TestAtimeNotLost(t *testing.T) { function TestSetlimitByFreeRatio (line 471) | func TestSetlimitByFreeRatio(t *testing.T) { function TestSetLimitByFreeRatioUnknownInodesKeepExplicitMaxItems (line 493) | func TestSetLimitByFreeRatioUnknownInodesKeepExplicitMaxItems(t *testing... function TestUnknownInodeStatsShouldNotMarkCacheAsRawFull (line 506) | func TestUnknownInodeStatsShouldNotMarkCacheAsRawFull(t *testing.T) { function Test2RandomEviction (line 527) | func Test2RandomEviction(t *testing.T) { function TestLruEviction (line 555) | func TestLruEviction(t *testing.T) { function TestCooldownAtimeOnWriteFixedOnLoad (line 656) | func TestCooldownAtimeOnWriteFixedOnLoad(t *testing.T) { FILE: pkg/chunk/mem_cache.go type memItem (line 28) | type memItem struct type memcache (line 33) | type memcache struct method removeStage (line 66) | func (c *memcache) removeStage(key string) error { method usedMemory (line 70) | func (c *memcache) usedMemory() int64 { method stats (line 76) | func (c *memcache) stats() (int64, int64) { method cache (line 82) | func (c *memcache) cache(key string, p *Page, force, dropCache bool) { method delete (line 107) | func (c *memcache) delete(key string, p *Page) { method remove (line 114) | func (c *memcache) remove(key string, staging bool) { method load (line 123) | func (c *memcache) load(key string) (ReadCloser, error) { method exist (line 133) | func (c *memcache) exist(key string) (string, bool) { method cleanup (line 147) | func (c *memcache) cleanup() { method enabled (line 171) | func (c *memcache) enabled() bool { method full (line 175) | func (c *memcache) full() bool { method cleanupExpire (line 179) | func (c *memcache) cleanupExpire() { method stage (line 209) | func (c *memcache) stage(key string, data []byte) (string, error) { method uploaded (line 212) | func (c *memcache) uploaded(key string, size int) {} method isEmpty (line 213) | func (c *memcache) isEmpty() bool { return false } method getMetrics (line 214) | func (c *memcache) getMetrics() *cacheManagerMetrics { return c.metrics } function newMemStore (line 45) | func newMemStore(config *Config, metrics *cacheManagerMetrics) *memcache { FILE: pkg/chunk/metrics.go type cacheManagerMetrics (line 24) | type cacheManagerMetrics struct method registerMetrics (line 42) | func (c *cacheManagerMetrics) registerMetrics(reg prometheus.Registere... method initMetrics (line 61) | func (c *cacheManagerMetrics) initMetrics() { function newCacheManagerMetrics (line 35) | func newCacheManagerMetrics(reg prometheus.Registerer) *cacheManagerMetr... FILE: pkg/chunk/page.go type Page (line 33) | type Page struct method Slice (line 67) | func (p *Page) Slice(off, len int) *Page { method Acquire (line 75) | func (p *Page) Acquire() { method Release (line 83) | func (p *Page) Release() { function NewPage (line 42) | func NewPage(data []byte) *Page { function NewOffPage (line 46) | func NewOffPage(size int) *Page { type pageReader (line 99) | type pageReader struct method Read (line 109) | func (r *pageReader) Read(buf []byte) (int, error) { method ReadAt (line 115) | func (r *pageReader) ReadAt(buf []byte, off int64) (int, error) { method Close (line 132) | func (r *pageReader) Close() error { function NewPageReader (line 104) | func NewPageReader(p *Page) *pageReader { FILE: pkg/chunk/page_test.go function TestPage (line 24) | func TestPage(t *testing.T) { function TestPageReader (line 53) | func TestPageReader(t *testing.T) { FILE: pkg/chunk/prefetch.go type prefetcher (line 23) | type prefetcher struct method do (line 42) | func (p *prefetcher) do() { method fetch (line 52) | func (p *prefetcher) fetch(key string) { function newPrefetcher (line 30) | func newPrefetcher(parallel int, fetch func(string)) *prefetcher { FILE: pkg/chunk/prefetch_test.go function TestPrefetcher (line 9) | func TestPrefetcher(t *testing.T) { FILE: pkg/chunk/singleflight.go type request (line 21) | type request struct type Controller (line 28) | type Controller struct method Execute (line 39) | func (con *Controller) Execute(key string, fn func() (*Page, error)) (... method TryPiggyback (line 67) | func (con *Controller) TryPiggyback(key string) (*Page, error) { function NewController (line 33) | func NewController() *Controller { FILE: pkg/chunk/singleflight_test.go function TestSingleFlight (line 29) | func TestSingleFlight(t *testing.T) { FILE: pkg/chunk/utils_darwin.go function getAtime (line 25) | func getAtime(fi os.FileInfo) time.Time { function dropOSCache (line 33) | func dropOSCache(r ReadCloser) {} FILE: pkg/chunk/utils_linux.go function getAtime (line 27) | func getAtime(fi os.FileInfo) time.Time { function dropOSCache (line 34) | func dropOSCache(r ReadCloser) { FILE: pkg/chunk/utils_unix.go function getNlink (line 27) | func getNlink(fi os.FileInfo) int { function getDiskUsage (line 34) | func getDiskUsage(path string) (uint64, uint64, uint64, uint64) { function changeMode (line 44) | func changeMode(dir string, st os.FileInfo, mode os.FileMode) { function inRootVolume (line 51) | func inRootVolume(dir string) bool { FILE: pkg/chunk/utils_unix_test.go function TestInRootVolume (line 28) | func TestInRootVolume(t *testing.T) { FILE: pkg/chunk/utils_windows.go function getAtime (line 27) | func getAtime(fi os.FileInfo) time.Time { function dropOSCache (line 36) | func dropOSCache(r ReadCloser) {} function getNlink (line 38) | func getNlink(fi os.FileInfo) int { function getDiskUsage (line 42) | func getDiskUsage(path string) (uint64, uint64, uint64, uint64) { function changeMode (line 52) | func changeMode(dir string, st os.FileInfo, mode os.FileMode) {} function inRootVolume (line 54) | func inRootVolume(dir string) bool { return false } FILE: pkg/compress/compress.go constant ZSTD_LEVEL (line 28) | ZSTD_LEVEL = 1 type Compressor (line 31) | type Compressor interface function NewCompressor (line 39) | func NewCompressor(algr string) Compressor { type noOp (line 51) | type noOp struct method Name (line 53) | func (n noOp) Name() string { return "Noop" } method CompressBound (line 54) | func (n noOp) CompressBound(l int) int { return l } method Compress (line 55) | func (n noOp) Compress(dst, src []byte) (int, error) { method Decompress (line 62) | func (n noOp) Decompress(dst, src []byte) (int, error) { type ZStandard (line 71) | type ZStandard struct method Name (line 76) | func (n ZStandard) Name() string { return "Zstd" } method CompressBound (line 79) | func (n ZStandard) CompressBound(l int) int { return zstd.CompressBoun... method Compress (line 82) | func (n ZStandard) Compress(dst, src []byte) (int, error) { method Decompress (line 94) | func (n ZStandard) Decompress(dst, src []byte) (int, error) { type LZ4 (line 106) | type LZ4 struct method Name (line 109) | func (l LZ4) Name() string { return "LZ4" } method CompressBound (line 112) | func (l LZ4) CompressBound(size int) int { return lz4.CompressBound(si... method Compress (line 115) | func (l LZ4) Compress(dst, src []byte) (int, error) { method Decompress (line 120) | func (l LZ4) Decompress(dst, src []byte) (int, error) { FILE: pkg/compress/compress_test.go function testCompress (line 25) | func testCompress(t *testing.T, c Compressor) { function TestUncompressed (line 66) | func TestUncompressed(t *testing.T) { function TestZstd (line 70) | func TestZstd(t *testing.T) { function TestLZ4 (line 74) | func TestLZ4(t *testing.T) { function benchmarkDecompress (line 78) | func benchmarkDecompress(b *testing.B, comp Compressor) { function BenchmarkDecompressZstd (line 107) | func BenchmarkDecompressZstd(b *testing.B) { function BenchmarkDecompressLZ4 (line 111) | func BenchmarkDecompressLZ4(b *testing.B) { function BenchmarkDecompressNone (line 115) | func BenchmarkDecompressNone(b *testing.B) { function benchmarkCompress (line 119) | func benchmarkCompress(b *testing.B, comp Compressor) { function BenchmarkCompressZstd (line 142) | func BenchmarkCompressZstd(b *testing.B) { function BenchmarkCompressCLZ4 (line 146) | func BenchmarkCompressCLZ4(b *testing.B) { function BenchmarkCompressNone (line 149) | func BenchmarkCompressNone(b *testing.B) { FILE: pkg/fs/fs.go function IsExist (line 51) | func IsExist(err error) bool { function IsNotExist (line 55) | func IsNotExist(err error) bool { function IsNotEmpty (line 59) | func IsNotEmpty(err error) bool { function errstr (line 63) | func errstr(e error) string { type FileStat (line 73) | type FileStat struct method Inode (line 79) | func (fs *FileStat) Inode() Ino { return fs.inode } method Name (line 80) | func (fs *FileStat) Name() string { return fs.name } method Size (line 81) | func (fs *FileStat) Size() int64 { return int64(fs.attr.Length) } method Mode (line 82) | func (fs *FileStat) Mode() os.FileMode { method ModTime (line 107) | func (fs *FileStat) ModTime() time.Time { method IsDir (line 110) | func (fs *FileStat) IsDir() bool { return fs.attr.Typ == meta.Typ... method IsSymlink (line 111) | func (fs *FileStat) IsSymlink() bool { return fs.attr.Typ == meta.Typ... method Sys (line 112) | func (fs *FileStat) Sys() interface{} { return fs.attr } method Uid (line 113) | func (fs *FileStat) Uid() int { return int(fs.attr.Uid) } method Gid (line 114) | func (fs *FileStat) Gid() int { return int(fs.attr.Gid) } method Atime (line 116) | func (fs *FileStat) Atime() int64 { return fs.attr.Atime*1000 + int64(... method Mtime (line 117) | func (fs *FileStat) Mtime() int64 { return fs.attr.Mtime*1000 + int64(... method Attr (line 119) | func (fs *FileStat) Attr() *Attr { return fs.attr } function AttrToFileInfo (line 121) | func AttrToFileInfo(inode Ino, attr *Attr) *FileStat { type entryCache (line 125) | type entryCache struct type attrCache (line 131) | type attrCache struct type FileSystem (line 136) | type FileSystem struct method InitMetrics (line 238) | func (fs *FileSystem) InitMetrics(reg prometheus.Registerer) { method cleanupCache (line 247) | func (fs *FileSystem) cleanupCache() { method InvalidateEntry (line 282) | func (fs *FileSystem) InvalidateEntry(parent Ino, name string) { method InvalidateAttr (line 294) | func (fs *FileSystem) InvalidateAttr(ino Ino) { method log (line 300) | func (fs *FileSystem) log(ctx LogContext, format string, args ...inter... method flushLog (line 318) | func (fs *FileSystem) flushLog(f *os.File, logBuffer chan string, path... method Meta (line 372) | func (fs *FileSystem) Meta() meta.Meta { method StatFS (line 376) | func (fs *FileSystem) StatFS(ctx meta.Context) (totalspace uint64, ava... method Lopen (line 386) | func (fs *FileSystem) Lopen(ctx meta.Context, path string, flags uint3... method Open (line 390) | func (fs *FileSystem) Open(ctx meta.Context, path string, flags uint32... method open (line 394) | func (fs *FileSystem) open(ctx meta.Context, path string, flags uint32... method Access (line 441) | func (fs *FileSystem) Access(ctx meta.Context, path string, flags int)... method Stat (line 456) | func (fs *FileSystem) Stat(ctx meta.Context, path string) (fi *FileSta... method Lstat (line 463) | func (fs *FileSystem) Lstat(ctx meta.Context, path string) (fi *FileSt... method Mkdir (line 475) | func (fs *FileSystem) Mkdir(ctx meta.Context, p string, mode uint16, u... method MkdirAll (line 506) | func (fs *FileSystem) MkdirAll(ctx meta.Context, p string, mode uint16... method MkdirAll0 (line 510) | func (fs *FileSystem) MkdirAll0(ctx meta.Context, p string, mode uint1... method Unlink (line 524) | func (fs *FileSystem) Unlink(ctx meta.Context, p string) (err syscall.... method Delete (line 531) | func (fs *FileSystem) Delete(ctx meta.Context, p string) (err syscall.... method BatchDeleteEntries (line 538) | func (fs *FileSystem) BatchDeleteEntries(ctx meta.Context, parent stri... method Delete0 (line 567) | func (fs *FileSystem) Delete0(ctx meta.Context, p string, callByUnlink... method Rmdir (line 589) | func (fs *FileSystem) Rmdir(ctx meta.Context, p string) (err syscall.E... method Rmr (line 602) | func (fs *FileSystem) Rmr(ctx meta.Context, p string, skipTrash bool, ... method Rename (line 635) | func (fs *FileSystem) Rename(ctx meta.Context, oldpath string, newpath... method Link (line 675) | func (fs *FileSystem) Link(ctx meta.Context, src string, dst string) (... method Symlink (line 693) | func (fs *FileSystem) Symlink(ctx meta.Context, target string, link st... method Readlink (line 709) | func (fs *FileSystem) Readlink(ctx meta.Context, link string) (path []... method Truncate (line 721) | func (fs *FileSystem) Truncate(ctx meta.Context, path string, length u... method CopyFileRange (line 736) | func (fs *FileSystem) CopyFileRange(ctx meta.Context, src string, soff... method SetXattr (line 755) | func (fs *FileSystem) SetXattr(ctx meta.Context, p string, name string... method GetXattr (line 767) | func (fs *FileSystem) GetXattr(ctx meta.Context, p string, name string... method ListXattr (line 779) | func (fs *FileSystem) ListXattr(ctx meta.Context, p string) (names []b... method RemoveXattr (line 791) | func (fs *FileSystem) RemoveXattr(ctx meta.Context, p string, name str... method GetFacl (line 803) | func (fs *FileSystem) GetFacl(ctx meta.Context, p string, acltype uint... method SetFacl (line 815) | func (fs *FileSystem) SetFacl(ctx meta.Context, p string, acltype uint... method lookup (line 845) | func (fs *FileSystem) lookup(ctx meta.Context, parent Ino, name string... method resolve (line 902) | func (fs *FileSystem) resolve(ctx meta.Context, p string, followLastSy... method doResolve (line 906) | func (fs *FileSystem) doResolve(ctx meta.Context, p string, followLast... method Create (line 1035) | func (fs *FileSystem) Create(ctx meta.Context, p string, mode uint16, ... method Flush (line 1078) | func (fs *FileSystem) Flush() error { method Close (line 1087) | func (fs *FileSystem) Close() error { method Clone (line 1097) | func (fs *FileSystem) Clone(ctx meta.Context, src, dst string, preserv... method Warmup (line 1126) | func (fs *FileSystem) Warmup(ctx meta.Context, paths []string, numthre... method HandleQuota (line 1142) | func (fs *FileSystem) HandleQuota(ctx meta.Context, path string, cmd u... type File (line 164) | type File struct method FS (line 1173) | func (f *File) FS() *FileSystem { method Inode (line 1177) | func (f *File) Inode() Ino { method Name (line 1181) | func (f *File) Name() string { method Stat (line 1185) | func (f *File) Stat() (fi os.FileInfo, err error) { method Chmod (line 1189) | func (f *File) Chmod(ctx meta.Context, mode uint16) (err syscall.Errno) { method Chown (line 1199) | func (f *File) Chown(ctx meta.Context, uid uint32, gid uint32) (err sy... method Utime (line 1216) | func (f *File) Utime(ctx meta.Context, atime, mtime int64) (err syscal... method Utime2 (line 1240) | func (f *File) Utime2(ctx meta.Context, atimeSec, atimeNSec, mtimeSec,... method Seek (line 1266) | func (f *File) Seek(ctx meta.Context, offset int64, whence int) (int64... method Read (line 1283) | func (f *File) Read(ctx meta.Context, b []byte) (n int, err error) { method Pread (line 1295) | func (f *File) Pread(ctx meta.Context, b []byte, offset int64) (n int,... method pread (line 1306) | func (f *File) pread(ctx meta.Context, b []byte, offset int64) (n int,... method Write (line 1343) | func (f *File) Write(ctx meta.Context, b []byte) (n int, err syscall.E... method Pwrite (line 1354) | func (f *File) Pwrite(ctx meta.Context, b []byte, offset int64) (n int... method pwrite (line 1364) | func (f *File) pwrite(ctx meta.Context, b []byte, offset int64) (n int... method Truncate (line 1381) | func (f *File) Truncate(ctx meta.Context, length uint64) (err syscall.... method Flush (line 1404) | func (f *File) Flush(ctx meta.Context) (err syscall.Errno) { method Fsync (line 1418) | func (f *File) Fsync(ctx meta.Context) (err syscall.Errno) { method Close (line 1432) | func (f *File) Close(ctx meta.Context) (err syscall.Errno) { method Readdir (line 1456) | func (f *File) Readdir(ctx meta.Context, count int) (fi []os.FileInfo,... method ReaddirPlus (line 1493) | func (f *File) ReaddirPlus(ctx meta.Context, offset int) (entries []*m... method Summary (line 1524) | func (f *File) Summary(ctx meta.Context, recursive, strict bool) (s *m... method GetTreeSummary (line 1535) | func (f *File) GetTreeSummary(ctx meta.Context, depth, entries uint8, ... method GetQuota (line 1551) | func (f *File) GetQuota(ctx meta.Context) (quota *meta.Quota, err erro... function NewFileSystem (line 180) | func NewFileSystem(conf *vfs.Config, m meta.Meta, d chunk.ChunkStore, re... function parentDir (line 471) | func parentDir(p string) string { function trimDotsForRename (line 615) | func trimDotsForRename(paths []string) (res []string) { FILE: pkg/fs/fs_test.go function TestFileStat (line 34) | func TestFileStat(t *testing.T) { function TestFileSystem (line 71) | func TestFileSystem(t *testing.T) { function createTestFS (line 275) | func createTestFS(t *testing.T) *FileSystem { FILE: pkg/fs/http.go type gzipResponseWriter (line 37) | type gzipResponseWriter struct method Write (line 42) | func (w gzipResponseWriter) Write(b []byte) (int, error) { type gzipHandler (line 46) | type gzipHandler struct method ServeHTTP (line 50) | func (g *gzipHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { function makeGzipHandler (line 62) | func makeGzipHandler(h http.Handler) http.Handler { function econv (line 73) | func econv(err error) error { type webdavFS (line 87) | type webdavFS struct method Mkdir (line 94) | func (hfs *webdavFS) Mkdir(ctx context.Context, name string, perm os.F... method OpenFile (line 98) | func (hfs *webdavFS) OpenFile(ctx context.Context, name string, flag i... method RemoveAll (line 127) | func (hfs *webdavFS) RemoveAll(ctx context.Context, name string) error { method Rename (line 131) | func (hfs *webdavFS) Rename(ctx context.Context, oldName, newName stri... method Stat (line 135) | func (hfs *webdavFS) Stat(ctx context.Context, name string) (os.FileIn... type davFile (line 140) | type davFile struct method DeadProps (line 154) | func (f *davFile) DeadProps() (map[xml.Name]webdav.Property, error) { method Patch (line 177) | func (f *davFile) Patch(patches []webdav.Proppatch) ([]webdav.Propstat... method Seek (line 218) | func (f *davFile) Seek(offset int64, whence int) (int64, error) { method Read (line 223) | func (f *davFile) Read(b []byte) (n int, err error) { method Write (line 228) | func (f *davFile) Write(buf []byte) (n int, err error) { method Readdir (line 233) | func (f *davFile) Readdir(count int) (fi []os.FileInfo, err error) { method Close (line 242) | func (f *davFile) Close() error { constant webdavDeadProps (line 147) | webdavDeadProps = "webdav-dead-props" type localProperty (line 149) | type localProperty struct type WebdavConfig (line 246) | type WebdavConfig struct type indexHandler (line 258) | type indexHandler struct method ServeHTTP (line 263) | func (h *indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques... function StartHTTPServer (line 338) | func StartHTTPServer(fs *FileSystem, config WebdavConfig) { function removeNewLine (line 369) | func removeNewLine(input string) string { FILE: pkg/fs/http_test.go function TestWebdav (line 30) | func TestWebdav(t *testing.T) { FILE: pkg/fuse/context.go type fuseContext (line 40) | type fuseContext struct method Uid (line 83) | func (c *fuseContext) Uid() uint32 { method Gid (line 87) | func (c *fuseContext) Gid() uint32 { method Gids (line 91) | func (c *fuseContext) Gids() []uint32 { method Pid (line 98) | func (c *fuseContext) Pid() uint32 { method Duration (line 102) | func (c *fuseContext) Duration() time.Duration { method Cancel (line 106) | func (c *fuseContext) Cancel() { method CheckPermission (line 110) | func (c *fuseContext) CheckPermission() bool { method Canceled (line 114) | func (c *fuseContext) Canceled() bool { method WithValue (line 129) | func (c *fuseContext) WithValue(k, v interface{}) meta.Context { method Err (line 135) | func (c *fuseContext) Err() error { method newContext (line 58) | func (fs *fileSystem) newContext(cancel <-chan struct{}, header *fuse.In... function releaseContext (line 79) | func releaseContext(ctx *fuseContext) { FILE: pkg/fuse/device_darwin.go function ensureFuseDev (line 16) | func ensureFuseDev() {} function grantAccess (line 18) | func grantAccess() error { FILE: pkg/fuse/device_linux.go function ensureFuseDev (line 30) | func ensureFuseDev() { function grantAccess (line 41) | func grantAccess() error { FILE: pkg/fuse/fuse.go type fileSystem (line 39) | type fileSystem struct method replyAttr (line 55) | func (fs *fileSystem) replyAttr(ctx *fuseContext, entry *meta.Entry, a... method replyEntry (line 73) | func (fs *fileSystem) replyEntry(ctx *fuseContext, out *fuse.EntryOut,... method Lookup (line 85) | func (fs *fileSystem) Lookup(cancel <-chan struct{}, header *fuse.InHe... method GetAttr (line 100) | func (fs *fileSystem) GetAttr(cancel <-chan struct{}, in *fuse.GetAttr... method SetAttr (line 115) | func (fs *fileSystem) SetAttr(cancel <-chan struct{}, in *fuse.SetAttr... method Mknod (line 126) | func (fs *fileSystem) Mknod(cancel <-chan struct{}, in *fuse.MknodIn, ... method Mkdir (line 136) | func (fs *fileSystem) Mkdir(cancel <-chan struct{}, in *fuse.MkdirIn, ... method Unlink (line 146) | func (fs *fileSystem) Unlink(cancel <-chan struct{}, header *fuse.InHe... method Rmdir (line 153) | func (fs *fileSystem) Rmdir(cancel <-chan struct{}, header *fuse.InHea... method Rename (line 160) | func (fs *fileSystem) Rename(cancel <-chan struct{}, in *fuse.RenameIn... method Link (line 167) | func (fs *fileSystem) Link(cancel <-chan struct{}, in *fuse.LinkIn, na... method Symlink (line 177) | func (fs *fileSystem) Symlink(cancel <-chan struct{}, header *fuse.InH... method Readlink (line 187) | func (fs *fileSystem) Readlink(cancel <-chan struct{}, header *fuse.In... method GetXAttr (line 194) | func (fs *fileSystem) GetXAttr(cancel <-chan struct{}, header *fuse.In... method ListXAttr (line 205) | func (fs *fileSystem) ListXAttr(cancel <-chan struct{}, header *fuse.I... method SetXAttr (line 216) | func (fs *fileSystem) SetXAttr(cancel <-chan struct{}, in *fuse.SetXAt... method RemoveXAttr (line 223) | func (fs *fileSystem) RemoveXAttr(cancel <-chan struct{}, header *fuse... method Create (line 230) | func (fs *fileSystem) Create(cancel <-chan struct{}, in *fuse.CreateIn... method Open (line 241) | func (fs *fileSystem) Open(cancel <-chan struct{}, in *fuse.OpenIn, ou... method Read (line 263) | func (fs *fileSystem) Read(cancel <-chan struct{}, in *fuse.ReadIn, bu... method Release (line 273) | func (fs *fileSystem) Release(cancel <-chan struct{}, in *fuse.Release... method Write (line 279) | func (fs *fileSystem) Write(cancel <-chan struct{}, in *fuse.WriteIn, ... method Flush (line 289) | func (fs *fileSystem) Flush(cancel <-chan struct{}, in *fuse.FlushIn) ... method Fsync (line 296) | func (fs *fileSystem) Fsync(cancel <-chan struct{}, in *fuse.FsyncIn) ... method Fallocate (line 303) | func (fs *fileSystem) Fallocate(cancel <-chan struct{}, in *fuse.Fallo... method CopyFileRange (line 310) | func (fs *fileSystem) CopyFileRange(cancel <-chan struct{}, in *fuse.C... method GetLk (line 325) | func (fs *fileSystem) GetLk(cancel <-chan struct{}, in *fuse.LkIn, out... method SetLk (line 336) | func (fs *fileSystem) SetLk(cancel <-chan struct{}, in *fuse.LkIn) (co... method SetLkw (line 340) | func (fs *fileSystem) SetLkw(cancel <-chan struct{}, in *fuse.LkIn) (c... method setLk (line 344) | func (fs *fileSystem) setLk(cancel <-chan struct{}, in *fuse.LkIn, blo... method Flock (line 355) | func (fs *fileSystem) Flock(cancel <-chan struct{}, in *fuse.LkIn, blo... method OpenDir (line 362) | func (fs *fileSystem) OpenDir(cancel <-chan struct{}, in *fuse.OpenIn,... method ReadDir (line 374) | func (fs *fileSystem) ReadDir(cancel <-chan struct{}, in *fuse.ReadIn,... method ReadDirPlus (line 391) | func (fs *fileSystem) ReadDirPlus(cancel <-chan struct{}, in *fuse.Rea... method ReleaseDir (line 418) | func (fs *fileSystem) ReleaseDir(in *fuse.ReleaseIn) { method StatFs (line 424) | func (fs *fileSystem) StatFs(cancel <-chan struct{}, in *fuse.InHeader... method Ioctl (line 445) | func (fs *fileSystem) Ioctl(cancel <-chan struct{}, in *fuse.IoctlIn, ... function newFileSystem (line 45) | func newFileSystem(conf *vfs.Config, v *vfs.VFS) *fileSystem { type setTimeout (line 53) | type setTimeout function Serve (line 453) | func Serve(v *vfs.VFS, options string, xattrs, ioctl bool) error { function GenFuseOpt (line 544) | func GenFuseOpt(conf *vfs.Config, options string, mt int, noxattr, noacl... function Shutdown (line 586) | func Shutdown() bool { FILE: pkg/fuse/fuse_darwin.go function getCreateUmask (line 23) | func getCreateUmask(mask uint32, defMask uint16) uint16 { function getUmask (line 30) | func getUmask(mask uint32, defMask uint16, isDir bool) uint16 { function setBlksize (line 40) | func setBlksize(out *fuse.Attr, size uint32) { FILE: pkg/fuse/fuse_linux.go function getCreateUmask (line 23) | func getCreateUmask(mask uint32, defMask uint16) uint16 { function getUmask (line 30) | func getUmask(mask uint32, defMask uint16, isDir bool) uint16 { function setBlksize (line 37) | func setBlksize(out *fuse.Attr, size uint32) { FILE: pkg/fuse/fuse_test.go function format (line 46) | func format(url string) { function mount (line 62) | func mount(url, mp string) { function umount (line 122) | func umount(mp string, force bool) { function waitMountpoint (line 144) | func waitMountpoint(mp string) chan error { function setUp (line 160) | func setUp(metaUrl, mp string) error { function cleanup (line 166) | func cleanup(mp string) { function StatFS (line 181) | func StatFS(t *testing.T, mp string) { function Xattrs (line 197) | func Xattrs(t *testing.T, mp string) { function Flock (line 224) | func Flock(t *testing.T, mp string) { function PosixLock (line 240) | func PosixLock(t *testing.T, mp string) { function TestFUSE (line 274) | func TestFUSE(t *testing.T) { FILE: pkg/fuse/gidcache.go type cItem (line 30) | type cItem struct type gidCache (line 35) | type gidCache struct method cleanup (line 50) | func (g *gidCache) cleanup() { method get (line 99) | func (g *gidCache) get(pid, gid uint32) []uint32 { function newGidCache (line 41) | func newGidCache(cacheto time.Duration) *gidCache { function findProcessGroups (line 64) | func findProcessGroups(pid, gid uint32) []uint32 { FILE: pkg/fuse/utils.go function attrToStat (line 25) | func attrToStat(inode Ino, attr *Attr, out *fuse.Attr) { FILE: pkg/gateway/gateway.go constant sep (line 54) | sep = "/" constant metaBucket (line 55) | metaBucket = ".sys" constant subDirPrefix (line 56) | subDirPrefix = 3 type Config (line 62) | type Config struct function NewJFSGateway (line 73) | func NewJFSGateway(jfs *fs.FileSystem, conf *vfs.Config, gConf *Config) ... type jfsObjects (line 80) | type jfsObjects struct method PutObjectMetadata (line 88) | func (n *jfsObjects) PutObjectMetadata(ctx context.Context, s string, ... method NSScanner (line 92) | func (n *jfsObjects) NSScanner(ctx context.Context, bf *minio.BloomFil... method IsCompressionSupported (line 96) | func (n *jfsObjects) IsCompressionSupported() bool { method IsEncryptionSupported (line 100) | func (n *jfsObjects) IsEncryptionSupported() bool { method IsReady (line 105) | func (n *jfsObjects) IsReady(_ context.Context) bool { method Shutdown (line 109) | func (n *jfsObjects) Shutdown(ctx context.Context) error { method StorageInfo (line 113) | func (n *jfsObjects) StorageInfo(ctx context.Context) (info minio.Stor... method isValidBucketName (line 172) | func (n *jfsObjects) isValidBucketName(bucket string) error { method path (line 185) | func (n *jfsObjects) path(p ...string) string { method tpath (line 192) | func (n *jfsObjects) tpath(p ...string) string { method upath (line 196) | func (n *jfsObjects) upath(bucket, uploadID string) string { method ppath (line 200) | func (n *jfsObjects) ppath(bucket, uploadID, part string) string { method ppathFlat (line 204) | func (n *jfsObjects) ppathFlat(bucket, uploadID, part string) string {... method DeleteBucket (line 208) | func (n *jfsObjects) DeleteBucket(ctx context.Context, bucket string, ... method MakeBucketWithLocation (line 223) | func (n *jfsObjects) MakeBucketWithLocation(ctx context.Context, bucke... method GetBucketInfo (line 242) | func (n *jfsObjects) GetBucketInfo(ctx context.Context, bucket string)... method ListBuckets (line 264) | func (n *jfsObjects) ListBuckets(ctx context.Context) (buckets []minio... method isLeafDir (line 306) | func (n *jfsObjects) isLeafDir(bucket, leafPath string) bool { method isLeaf (line 310) | func (n *jfsObjects) isLeaf(bucket, leafPath string) bool { method listDirFactory (line 314) | func (n *jfsObjects) listDirFactory() minio.ListDirFunc { method checkBucket (line 359) | func (n *jfsObjects) checkBucket(ctx context.Context, bucket string) e... method ListObjects (line 373) | func (n *jfsObjects) ListObjects(ctx context.Context, bucket, prefix, ... method ListObjectsV2 (line 445) | func (n *jfsObjects) ListObjectsV2(ctx context.Context, bucket, prefix... method setFileAtime (line 468) | func (n *jfsObjects) setFileAtime(p string, atime int64) { method DeleteObject (line 479) | func (n *jfsObjects) DeleteObject(ctx context.Context, bucket, object ... method delObj (line 489) | func (n *jfsObjects) delObj(bucket string, object string) error { method DeleteObjects (line 514) | func (n *jfsObjects) DeleteObjects(ctx context.Context, bucket string,... method GetObjectNInfo (line 567) | func (n *jfsObjects) GetObjectNInfo(ctx context.Context, bucket, objec... method CopyObject (line 588) | func (n *jfsObjects) CopyObject(ctx context.Context, srcBucket, srcObj... method GetObjectInfo (line 696) | func (n *jfsObjects) GetObjectInfo(ctx context.Context, bucket, object... method mkdirAll (line 762) | func (n *jfsObjects) mkdirAll(ctx context.Context, p string) error { method putObject (line 785) | func (n *jfsObjects) putObject(ctx context.Context, bucket, object str... method PutObject (line 849) | func (n *jfsObjects) PutObject(ctx context.Context, bucket string, obj... method NewMultipartUpload (line 914) | func (n *jfsObjects) NewMultipartUpload(ctx context.Context, bucket st... method getObjMeta (line 957) | func (n *jfsObjects) getObjMeta(p string) (objMeta map[string]string, ... method setObjMeta (line 974) | func (n *jfsObjects) setObjMeta(p string, metadata map[string]string) ... method ListMultipartUploads (line 1003) | func (n *jfsObjects) ListMultipartUploads(ctx context.Context, bucket ... method checkUploadIDExists (line 1104) | func (n *jfsObjects) checkUploadIDExists(ctx context.Context, bucket, ... method ListObjectParts (line 1112) | func (n *jfsObjects) ListObjectParts(ctx context.Context, bucket, obje... method CopyObjectPart (line 1155) | func (n *jfsObjects) CopyObjectPart(ctx context.Context, srcBucket, sr... method PutObjectPart (line 1167) | func (n *jfsObjects) PutObjectPart(ctx context.Context, bucket, object... method GetMultipartInfo (line 1189) | func (n *jfsObjects) GetMultipartInfo(ctx context.Context, bucket, obj... method CompleteMultipartUpload (line 1199) | func (n *jfsObjects) CompleteMultipartUpload(ctx context.Context, buck... method AbortMultipartUpload (line 1325) | func (n *jfsObjects) AbortMultipartUpload(ctx context.Context, bucket,... method cleanup (line 1333) | func (n *jfsObjects) cleanup() { method cleanupDir (line 1354) | func (n *jfsObjects) cleanupDir(dir string) bool { method NewNSLock (line 1474) | func (n *jfsObjects) NewNSLock(bucket string, objects ...string) minio... method BackendInfo (line 1507) | func (n *jfsObjects) BackendInfo() madmin.BackendInfo { method LocalStorageInfo (line 1511) | func (n *jfsObjects) LocalStorageInfo(ctx context.Context) (minio.Stor... method ListObjectVersions (line 1515) | func (n *jfsObjects) ListObjectVersions(ctx context.Context, bucket, p... method getObjectInfoNoFSLock (line 1524) | func (n *jfsObjects) getObjectInfoNoFSLock(ctx context.Context, bucket... method Walk (line 1544) | func (n *jfsObjects) Walk(ctx context.Context, bucket, prefix string, ... method SetBucketPolicy (line 1548) | func (n *jfsObjects) SetBucketPolicy(ctx context.Context, bucket strin... method GetBucketPolicy (line 1564) | func (n *jfsObjects) GetBucketPolicy(ctx context.Context, bucket strin... method DeleteBucketPolicy (line 1575) | func (n *jfsObjects) DeleteBucketPolicy(ctx context.Context, bucket st... method SetDriveCounts (line 1584) | func (n *jfsObjects) SetDriveCounts() []int { method HealFormat (line 1588) | func (n *jfsObjects) HealFormat(ctx context.Context, dryRun bool) (mad... method HealBucket (line 1592) | func (n *jfsObjects) HealBucket(ctx context.Context, bucket string, op... method HealObject (line 1596) | func (n *jfsObjects) HealObject(ctx context.Context, bucket, object, v... method HealObjects (line 1600) | func (n *jfsObjects) HealObjects(ctx context.Context, bucket, prefix s... method GetMetrics (line 1604) | func (n *jfsObjects) GetMetrics(ctx context.Context) (*minio.BackendMe... method Health (line 1608) | func (n *jfsObjects) Health(ctx context.Context, opts minio.HealthOpti... method ReadHealth (line 1617) | func (n *jfsObjects) ReadHealth(ctx context.Context) bool { method PutObjectTags (line 1622) | func (n *jfsObjects) PutObjectTags(ctx context.Context, bucket, object... method GetObjectTags (line 1632) | func (n *jfsObjects) GetObjectTags(ctx context.Context, bucket, object... method DeleteObjectTags (line 1644) | func (n *jfsObjects) DeleteObjectTags(ctx context.Context, bucket, obj... method IsNotificationSupported (line 1654) | func (n *jfsObjects) IsNotificationSupported() bool { method IsListenSupported (line 1658) | func (n *jfsObjects) IsListenSupported() bool { method IsTaggingSupported (line 1662) | func (n *jfsObjects) IsTaggingSupported() bool { function jfsToObjectErr (line 119) | func jfsToObjectErr(ctx context.Context, err error, params ...string) er... function isReservedOrInvalidBucket (line 257) | func isReservedOrInvalidBucket(bucketEntry string, strict bool) bool { type fReader (line 559) | type fReader struct method Read (line 563) | func (f *fReader) Read(b []byte) (int, error) { constant uploadKeyName (line 941) | uploadKeyName = "s3-object" constant s3Etag (line 942) | s3Etag = "s3-etag" constant s3Tags (line 945) | s3Tags = "s3-tags" constant s3Meta (line 948) | s3Meta = "s3-meta" constant amzMeta (line 949) | amzMeta = "x-amz-meta-" type jfsFLock (line 1385) | type jfsFLock struct method GetLock (line 1393) | func (j *jfsFLock) GetLock(ctx context.Context, timeout *minio.Dynamic... method getFlockWithTimeOut (line 1397) | func (j *jfsFLock) getFlockWithTimeOut(ctx context.Context, ltype uint... method Unlock (line 1450) | func (j *jfsFLock) Unlock() { method GetRLock (line 1460) | func (j *jfsFLock) GetRLock(ctx context.Context, timeout *minio.Dynami... method RUnlock (line 1464) | func (j *jfsFLock) RUnlock() { FILE: pkg/gateway/gateway_test.go function TestGatewayLock (line 34) | func TestGatewayLock(t *testing.T) { FILE: pkg/meta/backup.go constant BakMagic (line 35) | BakMagic = 0x747083 constant BakVersion (line 36) | BakVersion = 1 constant BakEOS (line 37) | BakEOS = BakMagic constant segTypeUnknown (line 41) | segTypeUnknown = iota constant segTypeFormat (line 42) | segTypeFormat constant segTypeCounter (line 43) | segTypeCounter constant segTypeNode (line 44) | segTypeNode constant segTypeEdge (line 45) | segTypeEdge constant segTypeChunk (line 46) | segTypeChunk constant segTypeSliceRef (line 47) | segTypeSliceRef constant segTypeSymlink (line 48) | segTypeSymlink constant segTypeSustained (line 49) | segTypeSustained constant segTypeDelFile (line 50) | segTypeDelFile constant segTypeXattr (line 51) | segTypeXattr constant segTypeAcl (line 52) | segTypeAcl constant segTypeStat (line 53) | segTypeStat constant segTypeQuota (line 54) | segTypeQuota constant segTypeParent (line 55) | segTypeParent constant segTypeMax (line 56) | segTypeMax function getMessageFromType (line 78) | func getMessageFromType(typ int) (proto.Message, error) { function createMessageByName (line 91) | func createMessageByName(name protoreflect.FullName) (proto.Message, err... type BakFormat (line 100) | type BakFormat struct method writeSegment (line 117) | func (f *BakFormat) writeSegment(w io.Writer, seg *BakSegment) error { method ReadSegment (line 140) | func (f *BakFormat) ReadSegment(r io.Reader) (*BakSegment, error) { method writeFooter (line 148) | func (f *BakFormat) writeFooter(w io.Writer) error { method writeEOS (line 155) | func (f *BakFormat) writeEOS(w io.Writer) error { method ReadFooter (line 162) | func (f *BakFormat) ReadFooter(r io.ReadSeeker) (*BakFooter, error) { ... function newBakFormat (line 105) | func newBakFormat() *BakFormat { type BakFooter (line 174) | type BakFooter struct method Marshal (line 179) | func (h *BakFooter) Marshal(w io.Writer) error { method Unmarshal (line 196) | func (h *BakFooter) Unmarshal(r io.ReadSeeker) error { type BakSegment (line 219) | type BakSegment struct method Name (line 225) | func (s *BakSegment) Name() string { method String (line 232) | func (s *BakSegment) String() string { method num (line 281) | func (s *BakSegment) num() uint64 { method Marshal (line 319) | func (s *BakSegment) Marshal(w io.Writer) (int, error) { method Unmarshal (line 343) | func (s *BakSegment) Unmarshal(r io.Reader) error { function newBakSegment (line 242) | func newBakSegment(val proto.Message) *BakSegment { type DumpOption (line 372) | type DumpOption struct method check (line 378) | func (opt *DumpOption) check() *DumpOption { method dumpFormat (line 388) | func (m *baseMeta) dumpFormat(ctx Context, opt *DumpOption, ch chan<- *d... type dumpedResult (line 401) | type dumpedResult struct function dumpResult (line 406) | func dumpResult(ctx context.Context, ch chan<- *dumpedResult, res *dumpe... type LoadOption (line 415) | type LoadOption struct method check (line 420) | func (opt *LoadOption) check() { type txSessionKey (line 428) | type txSessionKey struct type txMaxRetryKey (line 429) | type txMaxRetryKey struct FILE: pkg/meta/base.go constant inodeBatch (line 48) | inodeBatch = 1 << 10 constant sliceIdBatch (line 49) | sliceIdBatch = 4 << 10 constant nlocks (line 50) | nlocks = 1024 constant maxSymCacheNum (line 51) | maxSymCacheNum = int32(10000) constant unknownUsage (line 52) | unknownUsage = -1 function checkInodeName (line 66) | func checkInodeName(name string) syscall.Errno { type engine (line 73) | type engine interface type trashSliceScan (line 165) | type trashSliceScan type pendingSliceScan (line 166) | type pendingSliceScan type trashFileScan (line 167) | type trashFileScan type pendingFileScan (line 168) | type pendingFileScan type fsStat (line 172) | type fsStat struct type cchunk (line 180) | type cchunk struct type symlinkCache (line 186) | type symlinkCache struct method Store (line 230) | func (symCache *symlinkCache) Store(inode Ino, path []byte) { method clean (line 236) | func (symCache *symlinkCache) clean(ctx Context, wg *sync.WaitGroup) { method doClean (line 250) | func (symCache *symlinkCache) doClean() { type ugQuotaDelta (line 193) | type ugQuotaDelta struct type ugQuotaDeltas (line 200) | type ugQuotaDeltas method add (line 202) | func (ds ugQuotaDeltas) add(delta *ugQuotaDelta) { type batchCloneResult (line 212) | type batchCloneResult struct function ugKey (line 219) | func ugKey(uid, gid uint32) uint64 { function newSymlinkCache (line 223) | func newSymlinkCache(cap int32) *symlinkCache { type baseMeta (line 265) | type baseMeta struct method InitSharedMetrics (line 531) | func (m *baseMeta) InitSharedMetrics(reg prometheus.Registerer) { method InitMetrics (line 592) | func (m *baseMeta) InitMetrics(reg prometheus.Registerer) { method timeit (line 603) | func (m *baseMeta) timeit(method string, start time.Time) { method getBase (line 610) | func (m *baseMeta) getBase() *baseMeta { method checkRoot (line 614) | func (m *baseMeta) checkRoot(inode Ino) Ino { method txLock (line 625) | func (r *baseMeta) txLock(idx uint) { method txUnlock (line 629) | func (r *baseMeta) txUnlock(idx uint) { method txBatchLock (line 633) | func (r *baseMeta) txBatchLock(inodes ...Ino) func() { method OnMsg (line 663) | func (r *baseMeta) OnMsg(mtype uint32, cb MsgCallback) { method newMsg (line 669) | func (r *baseMeta) newMsg(mid uint32, args ...interface{}) error { method Load (line 679) | func (m *baseMeta) Load(checkVersion bool) (*Format, error) { method newSessionInfo (line 702) | func (m *baseMeta) newSessionInfo() []byte { method NewSession (line 733) | func (m *baseMeta) NewSession(record bool) error { method startDeleteSliceTasks (line 789) | func (m *baseMeta) startDeleteSliceTasks() { method stopDeleteSliceTasks (line 817) | func (m *baseMeta) stopDeleteSliceTasks() { method expireTime (line 829) | func (m *baseMeta) expireTime() int64 { method OnReload (line 837) | func (m *baseMeta) OnReload(fn func(f *Format)) { method refresh (line 845) | func (m *baseMeta) refresh(ctx Context) { method CleanStaleSessions (line 912) | func (m *baseMeta) CleanStaleSessions(ctx Context) { method CloseSession (line 931) | func (m *baseMeta) CloseSession() error { method FlushSession (line 947) | func (m *baseMeta) FlushSession() { method Init (line 957) | func (m *baseMeta) Init(format *Format, force bool) error { method cleanupDeletedFiles (line 961) | func (m *baseMeta) cleanupDeletedFiles(ctx Context) { method cleanupSlices (line 997) | func (m *baseMeta) cleanupSlices(ctx Context) { method StatFS (line 1028) | func (m *baseMeta) StatFS(ctx Context, ino Ino, totalspace, availspace... method statRootFs (line 1074) | func (m *baseMeta) statRootFs(ctx Context, totalspace, availspace, ius... method resolveCase (line 1142) | func (m *baseMeta) resolveCase(ctx Context, parent Ino, name string) *... method Lookup (line 1154) | func (m *baseMeta) Lookup(ctx Context, parent Ino, name string, inode ... method parseAttr (line 1233) | func (m *baseMeta) parseAttr(buf []byte, attr *Attr) { method marshal (line 1237) | func (m *baseMeta) marshal(attr *Attr) []byte { method encodeDelayedSlice (line 1241) | func (m *baseMeta) encodeDelayedSlice(id uint64, size uint32) []byte { method decodeDelayedSlices (line 1248) | func (m *baseMeta) decodeDelayedSlices(buf []byte, ss *[]Slice) { method Resolve (line 1281) | func (r *baseMeta) Resolve(ctx Context, parent Ino, path string, inode... method Access (line 1285) | func (m *baseMeta) Access(ctx Context, inode Ino, mmask uint8, attr *A... method GetAttr (line 1324) | func (m *baseMeta) GetAttr(ctx Context, inode Ino, attr *Attr) syscall... method SetAttr (line 1366) | func (m *baseMeta) SetAttr(ctx Context, inode Ino, set uint16, sugidcl... method nextInode (line 1401) | func (m *baseMeta) nextInode() (Ino, error) { method prefetchInodes (line 1433) | func (m *baseMeta) prefetchInodes() { method allocateInodes (line 1447) | func (m *baseMeta) allocateInodes() (freeID, error) { method Mknod (line 1455) | func (m *baseMeta) Mknod(ctx Context, parent Ino, name string, _type u... method Create (line 1520) | func (m *baseMeta) Create(ctx Context, parent Ino, name string, mode u... method Mkdir (line 1534) | func (m *baseMeta) Mkdir(ctx Context, parent Ino, name string, mode ui... method Symlink (line 1544) | func (m *baseMeta) Symlink(ctx Context, parent Ino, name string, path ... method Link (line 1557) | func (m *baseMeta) Link(ctx Context, inode, parent Ino, name string, a... method ReadLink (line 1605) | func (m *baseMeta) ReadLink(ctx Context, inode Ino, path *[]byte) sysc... method Unlink (line 1649) | func (m *baseMeta) Unlink(ctx Context, parent Ino, name string, skipCh... method Rmdir (line 1674) | func (m *baseMeta) Rmdir(ctx Context, parent Ino, name string, skipChe... method BatchUnlink (line 1706) | func (m *baseMeta) BatchUnlink(ctx Context, parent Ino, entries []*Ent... method BatchClone (line 1724) | func (m *baseMeta) BatchClone(ctx Context, srcParent Ino, dstParent In... method Rename (line 1744) | func (m *baseMeta) Rename(ctx Context, parentSrc Ino, nameSrc string, ... method touchAtime (line 1855) | func (m *baseMeta) touchAtime(ctx Context, inode Ino, attr *Attr) { method Open (line 1879) | func (m *baseMeta) Open(ctx Context, inode Ino, flags uint32, attr *At... method InvalidateChunkCache (line 1931) | func (m *baseMeta) InvalidateChunkCache(ctx Context, inode Ino, indx u... method Read (line 1936) | func (m *baseMeta) Read(ctx Context, inode Ino, indx uint32, slices *[... method NewSlice (line 1981) | func (m *baseMeta) NewSlice(ctx Context, id *uint64) syscall.Errno { method Close (line 1997) | func (m *baseMeta) Close(ctx Context, inode Ino) syscall.Errno { method Write (line 2012) | func (m *baseMeta) Write(ctx Context, inode Ino, indx uint32, off uint... method Truncate (line 2038) | func (m *baseMeta) Truncate(ctx Context, inode Ino, flags uint8, lengt... method Fallocate (line 2058) | func (m *baseMeta) Fallocate(ctx Context, inode Ino, mode uint8, off u... method Readdir (line 2094) | func (m *baseMeta) Readdir(ctx Context, inode Ino, plus uint8, entries... method SetXattr (line 2135) | func (m *baseMeta) SetXattr(ctx Context, inode Ino, name string, value... method RemoveXattr (line 2152) | func (m *baseMeta) RemoveXattr(ctx Context, inode Ino, name string) sy... method GetParents (line 2164) | func (m *baseMeta) GetParents(ctx Context, inode Ino) map[Ino]int { method GetPaths (line 2180) | func (m *baseMeta) GetPaths(ctx Context, inode Ino) []string { method countDirNlink (line 2264) | func (m *baseMeta) countDirNlink(ctx Context, inode Ino) (uint32, sysc... method walk (line 2280) | func (m *baseMeta) walk(ctx Context, inode Ino, p string, attr *Attr, ... method Check (line 2305) | func (m *baseMeta) Check(ctx Context, fpath string, opt *CheckOpt) err... method Chroot (line 2528) | func (m *baseMeta) Chroot(ctx Context, subdir string) syscall.Errno { method chroot (line 2554) | func (m *baseMeta) chroot(inode Ino) { method resolve (line 2558) | func (m *baseMeta) resolve(ctx Context, dpath string, inode *Ino, crea... method getFormat (line 2584) | func (m *baseMeta) getFormat() *Format { method GetFormat (line 2590) | func (m *baseMeta) GetFormat() Format { method CompactAll (line 2594) | func (m *baseMeta) CompactAll(ctx Context, threads int, bar *utils.Bar... method compactChunk (line 2619) | func (m *baseMeta) compactChunk(inode Ino, indx uint32, once, force bo... method Compact (line 2720) | func (m *baseMeta) Compact(ctx Context, inode Ino, concurrency int, pr... method fileDeleted (line 2771) | func (m *baseMeta) fileDeleted(opened, force bool, inode Ino, length u... method tryDeleteFileData (line 2781) | func (m *baseMeta) tryDeleteFileData(inode Ino, length uint64, force b... method deleteSlice_ (line 2797) | func (m *baseMeta) deleteSlice_(id uint64, size uint32) { method deleteSlice (line 2807) | func (m *baseMeta) deleteSlice(id uint64, size uint32) { method toTrash (line 2824) | func (m *baseMeta) toTrash(parent Ino) bool { method checkTrash (line 2831) | func (m *baseMeta) checkTrash(parent Ino, trash *Ino) syscall.Errno { method trashEntry (line 2865) | func (m *baseMeta) trashEntry(parent, inode Ino, name string) string { method cleanupTrash (line 2874) | func (m *baseMeta) cleanupTrash(ctx Context) { method CleanupDetachedNodesBefore (line 2932) | func (m *baseMeta) CleanupDetachedNodesBefore(ctx Context, edge time.T... method CleanupTrashBefore (line 2944) | func (m *baseMeta) CleanupTrashBefore(ctx Context, edge time.Time, inc... method scanTrashEntry (line 3017) | func (m *baseMeta) scanTrashEntry(ctx Context, scan func(inode Ino, si... method scanTrashFiles (line 3039) | func (m *baseMeta) scanTrashFiles(ctx Context, scan trashFileScan) err... method doCleanupTrash (line 3075) | func (m *baseMeta) doCleanupTrash(ctx Context, days int, force bool, s... method cleanupDelayedSlices (line 3083) | func (m *baseMeta) cleanupDelayedSlices(ctx Context, days int, count *... method ScanDeletedObject (line 3101) | func (m *baseMeta) ScanDeletedObject(ctx Context, tss trashSliceScan, ... method Clone (line 3160) | func (m *baseMeta) Clone(ctx Context, srcParentIno, srcIno, parent Ino... method cloneEntry (line 3227) | func (m *baseMeta) cloneEntry(ctx Context, srcIno Ino, parent Ino, nam... method mergeAttr (line 3386) | func (m *baseMeta) mergeAttr(ctx Context, inode Ino, set uint16, cur, ... method CheckSetAttr (line 3482) | func (m *baseMeta) CheckSetAttr(ctx Context, inode Ino, set uint16, at... method getFaclFromCache (line 3494) | func (m *baseMeta) getFaclFromCache(ctx Context, ino Ino, aclType uint... method saveACL (line 3541) | func (m *baseMeta) saveACL(rule *aclAPI.Rule, aclMaxId *uint32) uint32 { method SetFacl (line 3554) | func (m *baseMeta) SetFacl(ctx Context, ino Ino, aclType uint8, rule *... method GetFacl (line 3572) | func (m *baseMeta) GetFacl(ctx Context, ino Ino, aclType uint8, rule *... method StoreToken (line 3588) | func (m *baseMeta) StoreToken(ctx Context, token []byte) (id uint32, s... method UpdateToken (line 3593) | func (m *baseMeta) UpdateToken(ctx Context, id uint32, token []byte) s... method LoadToken (line 3598) | func (m *baseMeta) LoadToken(ctx Context, id uint32) (token []byte, st... method DeleteTokens (line 3603) | func (m *baseMeta) DeleteTokens(ctx Context, ids []uint32) syscall.Err... method ListTokens (line 3608) | func (m *baseMeta) ListTokens(ctx Context) (tokens map[uint32][]byte, ... method NewDirHandler (line 3630) | func (m *baseMeta) NewDirHandler(ctx Context, inode Ino, plus bool, in... method DumpMetaV2 (line 3806) | func (m *baseMeta) DumpMetaV2(ctx Context, w io.Writer, opt *DumpOptio... method LoadMetaV2 (line 3854) | func (m *baseMeta) LoadMetaV2(ctx Context, r io.Reader, opt *LoadOptio... function newBaseMeta (line 352) | func newBaseMeta(addr string, conf *Config) *baseMeta { constant bgJobSucc (line 784) | bgJobSucc = "success" constant bgJobFail (line 785) | bgJobFail = "failed" constant bgJobCanceled (line 786) | bgJobCanceled = "canceled" constant UmountCode (line 843) | UmountCode = 11 method reset (line 1212) | func (attr *Attr) reset() { function clearSUGID (line 1257) | func clearSUGID(ctx Context, cur *Attr, set *Attr) { type metaWalkFunc (line 2278) | type metaWalkFunc function setAttrACLId (line 3511) | func setAttrACLId(attr *Attr, aclType uint8, id uint32) { function getAttrACLId (line 3520) | func getAttrACLId(attr *Attr, aclType uint8) uint32 { function setXAttrACL (line 3530) | func setXAttrACL(xattrs *[]byte, accessACL, defaultACL uint32) { function inGroup (line 3613) | func inGroup(ctx Context, gid uint32) bool { type DirHandler (line 3622) | type DirHandler interface type dirBatch (line 3681) | type dirBatch struct method contain (line 3689) | func (b *dirBatch) contain(offset int) bool { method predecessor (line 3696) | func (b *dirBatch) predecessor(offset int) bool { type dirFetcher (line 3700) | type dirFetcher type dirHandler (line 3702) | type dirHandler struct method fetch (line 3713) | func (h *dirHandler) fetch(ctx Context, offset int) (*dirBatch, error) { method List (line 3736) | func (h *dirHandler) List(ctx Context, offset int) ([]*Entry, syscall.... method Delete (line 3763) | func (h *dirHandler) Delete(name string) { method Insert (line 3782) | func (h *dirHandler) Insert(inode Ino, name string, attr *Attr) { method Read (line 3795) | func (h *dirHandler) Read(offset int) { method Close (line 3799) | func (h *dirHandler) Close() { FILE: pkg/meta/base_test.go function testConfig (line 48) | func testConfig() *Config { function testFormat (line 54) | func testFormat() *Format { function TestRedisClient (line 58) | func TestRedisClient(t *testing.T) { function TestKeyDB (line 66) | func TestKeyDB(t *testing.T) { // skip mutate function TestRedisCluster (line 111) | func TestRedisCluster(t *testing.T) { // skip mutate function testMeta (line 122) | func testMeta(t *testing.T, m Meta) { function testAccess (line 166) | func testAccess(t *testing.T, m Meta) { function testACL (line 225) | func testACL(t *testing.T, m Meta) { function testKerberosToken (line 405) | func testKerberosToken(t *testing.T, m Meta) { function testMetaClient (line 495) | func testMetaClient(t *testing.T, m Meta) { function testStickyBit (line 1070) | func testStickyBit(t *testing.T, m Meta) { function testListLocks (line 1136) | func testListLocks(t *testing.T, m Meta) { function testLocks (line 1210) | func testLocks(t *testing.T, m Meta) { function testResolve (line 1358) | func testResolve(t *testing.T, m Meta) { function testRemove (line 1404) | func testRemove(t *testing.T, m Meta) { function testCaseIncensi (line 1445) | func testCaseIncensi(t *testing.T, m Meta) { function testCaseIncensiRename (line 1488) | func testCaseIncensiRename(t *testing.T, m Meta) { function testCaseIncensiHardlinkRename (line 1563) | func testCaseIncensiHardlinkRename(t *testing.T, m Meta) { type compactor (line 1644) | type compactor interface function testCompaction (line 1648) | func testCompaction(t *testing.T, m Meta, trash bool) { function testConcurrentWrite (line 1854) | func testConcurrentWrite(t *testing.T, m Meta) { function testTruncateAndDelete (line 1922) | func testTruncateAndDelete(t *testing.T, m Meta) { function testCopyFileRange (line 1986) | func testCopyFileRange(t *testing.T, m Meta) { function testCloseSession (line 2054) | func testCloseSession(t *testing.T, m Meta) { function testTrash (line 2115) | func testTrash(t *testing.T, m Meta) { function testParents (line 2360) | func testParents(t *testing.T, m Meta) { function testOpenCache (line 2430) | func testOpenCache(t *testing.T, m Meta) { function testReadOnly (line 2462) | func testReadOnly(t *testing.T, m Meta) { function testConcurrentDir (line 2489) | func testConcurrentDir(t *testing.T, m Meta) { function testAttrFlags (line 2560) | func testAttrFlags(t *testing.T, m Meta) { function setAttr (line 2717) | func setAttr(t *testing.T, m Meta, inode Ino, attr *Attr) { function testCheckAndRepair (line 2758) | func testCheckAndRepair(t *testing.T, m Meta) { function testDirStat (line 2883) | func testDirStat(t *testing.T, m Meta) { function testBatchClone (line 2988) | func testBatchClone(t *testing.T, m Meta) { function testClone (line 3215) | func testClone(t *testing.T, m Meta) { function checkEntryTree (line 3497) | func checkEntryTree(t *testing.T, m Meta, srcIno, dstIno Ino, walkFunc f... function checkEntry (line 3523) | func checkEntry(t *testing.T, m Meta, srcEntry, dstEntry *Entry, dstPare... function testQuota (line 3571) | func testQuota(t *testing.T, m Meta) { function testAtime (line 3726) | func testAtime(t *testing.T, m Meta) { function TestQuotaEdgeCases (line 3855) | func TestQuotaEdgeCases(t *testing.T) { function TestCheckQuotaFileOwner (line 3915) | func TestCheckQuotaFileOwner(t *testing.T) { function TestSymlinkCache (line 3960) | func TestSymlinkCache(t *testing.T) { function TestTxBatchLock (line 3985) | func TestTxBatchLock(t *testing.T) { function testCheckQuotaFileOwnerSimple (line 4045) | func testCheckQuotaFileOwnerSimple(t *testing.T, m Meta) { function testQuotaEdgeCases (line 4095) | func testQuotaEdgeCases(t *testing.T, m Meta) { function testQuotaEdgeCasesComplex (line 4138) | func testQuotaEdgeCasesComplex(t *testing.T, m Meta) { function testCheckQuotaFileOwner (line 4215) | func testCheckQuotaFileOwner(t *testing.T, m Meta) { type testContext (line 4488) | type testContext struct method Uid (line 4494) | func (c *testContext) Uid() uint32 { return c.u... method Gid (line 4495) | func (c *testContext) Gid() uint32 { return c.g... method Gids (line 4496) | func (c *testContext) Gids() []uint32 { return []u... method Pid (line 4497) | func (c *testContext) Pid() uint32 { return 0 } method WithValue (line 4498) | func (c *testContext) WithValue(k, v interface{}) Context { return c } method Cancel (line 4499) | func (c *testContext) Cancel() {} method Canceled (line 4500) | func (c *testContext) Canceled() bool { return fal... method CheckPermission (line 4501) | func (c *testContext) CheckPermission() bool { return true } function cleanupQuotaTest (line 4503) | func cleanupQuotaTest(ctx Context, m Meta, parent Ino, uid, gid uint32) { function testBasicQuotaOperations (line 4532) | func testBasicQuotaOperations(t *testing.T, m Meta, ctx Context, uid, gi... function testQuotaFileOperations (line 4582) | func testQuotaFileOperations(t *testing.T, m Meta, ctx Context, parent I... function testQuotaErrorCases (line 4652) | func testQuotaErrorCases(t *testing.T, m Meta, ctx Context, uid, gid uin... function testQuotaConcurrentOperations (line 4684) | func testQuotaConcurrentOperations(t *testing.T, m Meta, ctx Context) { function testQuotaMixedTypes (line 4715) | func testQuotaMixedTypes(t *testing.T, m Meta, ctx Context, uid, gid uin... function testQuotaUsageStatistics (line 4745) | func testQuotaUsageStatistics(t *testing.T, m Meta, ctx Context, parent ... function testUserGroupQuota (line 4806) | func testUserGroupQuota(t *testing.T, m Meta) { function testHardlinkQuota (line 4866) | func testHardlinkQuota(t *testing.T, m Meta, ctx Context, parent Ino, ui... function testBatchUnlinkWithUserGroupQuota (line 5037) | func testBatchUnlinkWithUserGroupQuota(t *testing.T, m Meta, ctx Context... FILE: pkg/meta/benchmarks_test.go constant redisAddr (line 30) | redisAddr = "redis://127.0.0.1/1" constant sqlAddr (line 31) | sqlAddr = "sqlite3://juicefs.db" constant tkvAddr (line 34) | tkvAddr = "badger://test_db" function init (line 38) | func init() { function encodeSlices (line 43) | func encodeSlices(size int) []string { function encodeSlicesAsBuf (line 58) | func encodeSlicesAsBuf(nSlices uint32) []byte { function BenchmarkReadSlices (line 70) | func BenchmarkReadSlices(b *testing.B) { function BenchmarkReadSliceBuf (line 94) | func BenchmarkReadSliceBuf(b *testing.B) { function prepareParent (line 118) | func prepareParent(m Meta, name string, inode *Ino) error { function benchMkdir (line 129) | func benchMkdir(b *testing.B, m Meta) { function benchMvdir (line 143) | func benchMvdir(b *testing.B, m Meta) { // rename dir function benchRmdir (line 160) | func benchRmdir(b *testing.B, m Meta) { function benchResolve (line 179) | func benchResolve(b *testing.B, m Meta) { function benchReaddir (line 203) | func benchReaddir(b *testing.B, m Meta, n int) { function benchMknod (line 227) | func benchMknod(b *testing.B, m Meta) { function benchCreate (line 241) | func benchCreate(b *testing.B, m Meta) { function benchRename (line 255) | func benchRename(b *testing.B, m Meta) { function benchUnlink (line 272) | func benchUnlink(b *testing.B, m Meta) { function benchLookup (line 291) | func benchLookup(b *testing.B, m Meta) { function benchGetAttr (line 310) | func benchGetAttr(b *testing.B, m Meta) { function benchSetAttr (line 328) | func benchSetAttr(b *testing.B, m Meta) { function benchAccess (line 347) | func benchAccess(b *testing.B, m Meta) { // contains a Getattr function benchSetXattr (line 365) | func benchSetXattr(b *testing.B, m Meta) { function benchGetXattr (line 384) | func benchGetXattr(b *testing.B, m Meta) { function benchRemoveXattr (line 405) | func benchRemoveXattr(b *testing.B, m Meta) { function benchListXattr (line 427) | func benchListXattr(b *testing.B, m Meta, n int) { function benchLink (line 450) | func benchLink(b *testing.B, m Meta) { function benchSymlink (line 468) | func benchSymlink(b *testing.B, m Meta) { function benchNewChunk (line 510) | func benchNewChunk(b *testing.B, m Meta) { function benchWrite (line 520) | func benchWrite(b *testing.B, m Meta) { function benchRead (line 550) | func benchRead(b *testing.B, m Meta, n int) { function benchmarkDir (line 579) | func benchmarkDir(b *testing.B, m Meta) { // mkdir, rename dir, rmdir, r... function benchmarkFile (line 589) | func benchmarkFile(b *testing.B, m Meta) { function benchmarkXattr (line 600) | func benchmarkXattr(b *testing.B, m Meta) { function benchmarkLink (line 608) | func benchmarkLink(b *testing.B, m Meta) { function benchmarkData (line 615) | func benchmarkData(b *testing.B, m Meta) { function benchmarkAll (line 624) | func benchmarkAll(b *testing.B, m Meta) { function BenchmarkRedis (line 634) | func BenchmarkRedis(b *testing.B) { function BenchmarkSQL (line 639) | func BenchmarkSQL(b *testing.B) { function BenchmarkTKV (line 644) | func BenchmarkTKV(b *testing.B) { FILE: pkg/meta/config.go type Config (line 38) | type Config struct method SelfCheck (line 63) | func (c *Config) SelfCheck() { function DefaultConf (line 59) | func DefaultConf() *Config { type Format (line 77) | type Format struct method update (line 111) | func (f *Format) update(old *Format, force bool) error { method RemoveSecret (line 147) | func (f *Format) RemoveSecret() { method String (line 159) | func (f *Format) String() string { method CheckVersion (line 166) | func (f *Format) CheckVersion() error { method CheckCliVersion (line 175) | func (f *Format) CheckCliVersion(ver *version.Semver) error { method Encrypt (line 229) | func (f *Format) Encrypt() error { method Decrypt (line 259) | func (f *Format) Decrypt() error { function newCipher (line 203) | func newCipher(algo string, key string) (cipher.AEAD, error) { FILE: pkg/meta/config_test.go function TestRemoveSecret (line 27) | func TestRemoveSecret(t *testing.T) { function TestEncrypt (line 43) | func TestEncrypt(t *testing.T) { function TestFormat_Update_KeyConflict (line 71) | func TestFormat_Update_KeyConflict(t *testing.T) { FILE: pkg/meta/context.go type CtxKey (line 24) | type CtxKey type Context (line 26) | type Context interface function Background (line 38) | func Background() Context { type wrapContext (line 42) | type wrapContext struct method Uid (line 50) | func (c *wrapContext) Uid() uint32 { method Gid (line 54) | func (c *wrapContext) Gid() uint32 { method Gids (line 58) | func (c *wrapContext) Gids() []uint32 { method Pid (line 62) | func (c *wrapContext) Pid() uint32 { method Cancel (line 66) | func (c *wrapContext) Cancel() { method Canceled (line 72) | func (c *wrapContext) Canceled() bool { method WithValue (line 76) | func (c *wrapContext) WithValue(k, v interface{}) Context { method CheckPermission (line 82) | func (c *wrapContext) CheckPermission() bool { function NewContext (line 86) | func NewContext(pid, uid uint32, gids []uint32) Context { function WrapContext (line 90) | func WrapContext(ctx context.Context) Context { function WrapWithCancel (line 94) | func WrapWithCancel(ctx context.Context, pid, uid uint32, gids []uint32)... function WrapWithTimeout (line 99) | func WrapWithTimeout(ctx Context, timeout time.Duration) Context { function WrapWithoutCancel (line 104) | func WrapWithoutCancel(ctx context.Context, pid, uid uint32, gids []uint... function containsGid (line 108) | func containsGid(ctx Context, gid uint32) bool { FILE: pkg/meta/dump.go constant jsonIndent (line 34) | jsonIndent = " " constant jsonWriteSize (line 35) | jsonWriteSize = 64 << 10 type DumpedCounters (line 38) | type DumpedCounters struct type DumpedDelFile (line 48) | type DumpedDelFile struct type DumpedSustained (line 54) | type DumpedSustained struct type DumpedAttr (line 59) | type DumpedAttr struct type DumpedSlice (line 78) | type DumpedSlice struct type DumpedChunk (line 87) | type DumpedChunk struct type DumpedXattr (line 92) | type DumpedXattr struct type DumpedQuota (line 97) | type DumpedQuota struct type DumpedACLEntry (line 104) | type DumpedACLEntry struct type DumpedACL (line 109) | type DumpedACL struct type DumpedEntry (line 118) | type DumpedEntry struct method writeJSON (line 227) | func (de *DumpedEntry) writeJSON(bw *bufio.Writer, depth int) error { method writeJsonWithOutEntry (line 288) | func (de *DumpedEntry) writeJsonWithOutEntry(bw *bufio.Writer, depth i... type wrapEntryPool (line 130) | type wrapEntryPool struct method Get (line 134) | func (p *wrapEntryPool) Get() *DumpedEntry { method Put (line 138) | func (p *wrapEntryPool) Put(de *DumpedEntry) { function escape (line 165) | func escape(original string) string { function parseHex (line 194) | func parseHex(c byte) (byte, error) { function unescape (line 204) | func unescape(s string) []byte { type DumpedMeta (line 327) | type DumpedMeta struct method validate (line 337) | func (dm *DumpedMeta) validate() error { method writeJsonWithOutTree (line 344) | func (dm *DumpedMeta) writeJsonWithOutTree(w io.Writer) (*bufio.Writer... method loadDumpedQuotas (line 359) | func (m *baseMeta) loadDumpedQuotas(ctx Context, quotas map[Ino]*DumpedQ... function dumpAttr (line 369) | func dumpAttr(a *Attr, d *DumpedAttr) { function loadAttr (line 393) | func loadAttr(d *DumpedAttr) *Attr { type chunkKey (line 412) | type chunkKey struct function loadEntries (line 417) | func loadEntries(r io.Reader, load func(*DumpedEntry), addChunk func(*ch... function decodeEntry (line 478) | func decodeEntry(dec *json.Decoder, parent Ino, cs *DumpedCounters, pare... function dumpACL (line 613) | func dumpACL(rule *aclAPI.Rule) *DumpedACL { function dumpACLEntries (line 627) | func dumpACLEntries(entries aclAPI.Entries) []DumpedACLEntry { function loadACL (line 639) | func loadACL(dumped *DumpedACL) *aclAPI.Rule { function loadACLEntries (line 653) | func loadACLEntries(dumpedEnts []DumpedACLEntry) aclAPI.Entries { FILE: pkg/meta/info.go type redisVersion (line 25) | type redisVersion struct method olderThan (line 47) | func (ver redisVersion) olderThan(v2 redisVersion) bool { method String (line 57) | func (ver redisVersion) String() string { function parseRedisVersion (line 32) | func parseRedisVersion(v string) (ver redisVersion, err error) { type redisInfo (line 61) | type redisInfo struct function checkRedisInfo (line 68) | func checkRedisInfo(rawInfo string) (info redisInfo, err error) { FILE: pkg/meta/info_test.go function TestOlderThan (line 21) | func TestOlderThan(t *testing.T) { function TestParseRedisVersion (line 43) | func TestParseRedisVersion(t *testing.T) { function TestParseRedisInfo (line 67) | func TestParseRedisInfo(t *testing.T) { FILE: pkg/meta/interface.go constant MaxVersion (line 37) | MaxVersion = 1 constant ChunkBits (line 39) | ChunkBits = 26 constant ChunkSize (line 41) | ChunkSize = 1 << ChunkBits constant DeleteSlice (line 43) | DeleteSlice = 1000 constant CompactChunk (line 45) | CompactChunk = 1001 constant Rmr (line 47) | Rmr = 1002 constant LegacyInfo (line 49) | LegacyInfo = 1003 constant FillCache (line 51) | FillCache = 1004 constant InfoV2 (line 53) | InfoV2 = 1005 constant Clone (line 55) | Clone = 1006 constant OpSummary (line 57) | OpSummary = 1007 constant CompactPath (line 59) | CompactPath = 1008 constant TypeFile (line 63) | TypeFile = 1 constant TypeDirectory (line 64) | TypeDirectory = 2 constant TypeSymlink (line 65) | TypeSymlink = 3 constant TypeFIFO (line 66) | TypeFIFO = 4 constant TypeBlockDev (line 67) | TypeBlockDev = 5 constant TypeCharDev (line 68) | TypeCharDev = 6 constant TypeSocket (line 69) | TypeSocket = 7 constant RenameNoReplace (line 73) | RenameNoReplace = 1 << iota constant RenameExchange (line 74) | RenameExchange constant RenameWhiteout (line 75) | RenameWhiteout constant _renameReserved1 (line 76) | _renameReserved1 constant _renameReserved2 (line 77) | _renameReserved2 constant RenameRestore (line 78) | RenameRestore constant SetAttrMode (line 83) | SetAttrMode = 1 << iota constant SetAttrUID (line 84) | SetAttrUID constant SetAttrGID (line 85) | SetAttrGID constant SetAttrSize (line 86) | SetAttrSize constant SetAttrAtime (line 87) | SetAttrAtime constant SetAttrMtime (line 88) | SetAttrMtime constant SetAttrCtime (line 89) | SetAttrCtime constant SetAttrAtimeNow (line 90) | SetAttrAtimeNow constant SetAttrMtimeNow (line 91) | SetAttrMtimeNow constant SetAttrCtimeNow (line 92) | SetAttrCtimeNow constant SetAttrFlag (line 93) | SetAttrFlag = 1 << 15 constant FlagImmutable (line 97) | FlagImmutable = 1 << iota constant FlagAppend (line 98) | FlagAppend constant FlagWindowsHidden (line 99) | FlagWindowsHidden constant FlagWindowsSystem (line 100) | FlagWindowsSystem constant FlagWindowsArchive (line 101) | FlagWindowsArchive constant FlagSkipTrash (line 102) | FlagSkipTrash constant QuotaSet (line 106) | QuotaSet uint8 = iota constant QuotaGet (line 107) | QuotaGet constant QuotaDel (line 108) | QuotaDel constant QuotaList (line 109) | QuotaList constant QuotaCheck (line 110) | QuotaCheck constant MaxName (line 113) | MaxName = 255 constant MaxSymlink (line 114) | MaxSymlink = 4096 type Ino (line 116) | type Ino method String (line 123) | func (i Ino) String() string { method IsValid (line 127) | func (i Ino) IsValid() bool { method IsTrash (line 131) | func (i Ino) IsTrash() bool { method IsNormal (line 135) | func (i Ino) IsNormal() bool { constant RootInode (line 118) | RootInode Ino = 1 constant TrashInode (line 119) | TrashInode Ino = 0x7FFFFFFF10000000 constant RmrDefaultThreads (line 121) | RmrDefaultThreads = 50 type internalNode (line 141) | type internalNode struct constant CPROGRESS (line 147) | CPROGRESS = 0xFE constant CDATA (line 148) | CDATA = 0xFF type MsgCallback (line 151) | type MsgCallback type Attr (line 154) | type Attr struct method Marshal (line 178) | func (attr *Attr) Marshal() []byte { method Unmarshal (line 206) | func (attr *Attr) Unmarshal(buf []byte) { method SMode (line 301) | func (a *Attr) SMode() uint32 { function typeToStatType (line 237) | func typeToStatType(_type uint8) uint32 { function typeToString (line 258) | func typeToString(_type uint8) string { function typeFromString (line 279) | func typeFromString(s string) uint8 { type Entry (line 306) | type Entry struct type Slice (line 314) | type Slice struct type Summary (line 323) | type Summary struct type TreeSummary (line 330) | type TreeSummary struct type SessionInfo (line 340) | type SessionInfo struct type Flock (line 349) | type Flock struct type Plock (line 355) | type Plock struct type Session (line 362) | type Session struct type Meta (line 372) | type Meta interface type CheckOpt (line 544) | type CheckOpt struct type CleanupTrashStats (line 553) | type CleanupTrashStats struct type Creator (line 557) | type Creator function Register (line 561) | func Register(name string, register Creator) { function injectPasswordIntoURI (line 565) | func injectPasswordIntoURI(uri, password string) (string, error) { function readPasswordFromFile (line 584) | func readPasswordFromFile(filePath string) (string, error) { function setPasswordFromEnv (line 592) | func setPasswordFromEnv(uri string) (string, error) { function NewClient (line 612) | func NewClient(uri string, conf *Config) Meta { FILE: pkg/meta/interface_test.go function Test_injectPasswordIntoURI (line 25) | func Test_injectPasswordIntoURI(t *testing.T) { function Test_setPasswordFromEnv (line 124) | func Test_setPasswordFromEnv(t *testing.T) { function Test_readPasswordFromFile (line 214) | func Test_readPasswordFromFile(t *testing.T) { FILE: pkg/meta/load_dump_test.go constant sampleFile (line 36) | sampleFile = "metadata.sample" constant subSampleFile (line 37) | subSampleFile = "metadata-sub.sample" function TestEscape (line 39) | func TestEscape(t *testing.T) { function Utf8ToGbk (line 76) | func Utf8ToGbk(s []byte) ([]byte, error) { function GbkToUtf8 (line 85) | func GbkToUtf8(s []byte) ([]byte, error) { function checkMeta (line 94) | func checkMeta(t *testing.T, m Meta) { function testLoadSub (line 269) | func testLoadSub(t *testing.T, uri, fname string) { function testDump (line 297) | func testDump(t *testing.T, m Meta, root Ino, expect, result string) { function testLoadDump (line 323) | func testLoadDump(t *testing.T, name, addr string) { function TestLoadDump (line 339) | func TestLoadDump(t *testing.T) { //skip mutate function testDumpV2 (line 346) | func testDumpV2(t *testing.T, m Meta, result string, opt *DumpOption) { function testLoad (line 364) | func testLoad(t *testing.T, uri, fname string, v2 bool) Meta { function testLoadDumpV2 (line 387) | func testLoadDumpV2(t *testing.T, name, addr1, addr2 string) { function testLoadOtherEngine (line 403) | func testLoadOtherEngine(t *testing.T, src, dst, dstAddr string) { function TestLoadDumpV2 (line 410) | func TestLoadDumpV2(t *testing.T) { function TestLoadDumpSlow (line 436) | func TestLoadDumpSlow(t *testing.T) { //skip mutate function TestLoadDump_MemKV (line 447) | func TestLoadDump_MemKV(t *testing.T) { function testSecretAndTrash (line 468) | func testSecretAndTrash(t *testing.T, addr, addr2 string) { FILE: pkg/meta/lua_scripts.go constant scriptLookup (line 20) | scriptLookup = ` constant scriptResolve (line 33) | scriptResolve = ` FILE: pkg/meta/openfile.go constant invalidateAllChunks (line 9) | invalidateAllChunks = 0xFFFFFFFF constant invalidateAttrOnly (line 10) | invalidateAttrOnly = 0xFFFFFFFE type openFile (line 19) | type openFile struct method invalidateChunk (line 28) | func (o *openFile) invalidateChunk() { method release (line 35) | func (o *openFile) release() { type openfiles (line 44) | type openfiles struct method cleanup (line 61) | func (o *openfiles) cleanup() { method OpenCheck (line 108) | func (o *openfiles) OpenCheck(ino Ino, attr *Attr) bool { method Open (line 122) | func (o *openfiles) Open(ino Ino, attr *Attr) { method Close (line 143) | func (o *openfiles) Close(ino Ino) bool { method Check (line 154) | func (o *openfiles) Check(ino Ino, attr *Attr) bool { method Update (line 168) | func (o *openfiles) Update(ino Ino, attr *Attr) bool { method IsOpen (line 188) | func (o *openfiles) IsOpen(ino Ino) bool { method ReadChunk (line 195) | func (o *openfiles) ReadChunk(ino Ino, indx uint32) ([]Slice, bool) { method CacheChunk (line 210) | func (o *openfiles) CacheChunk(ino Ino, indx uint32, cs []Slice) { method InvalidateChunk (line 227) | func (o *openfiles) InvalidateChunk(ino Ino, indx uint32) { method find (line 243) | func (o *openfiles) find(ino Ino) *openFile { function newOpenFiles (line 51) | func newOpenFiles(expire time.Duration, limit uint64) *openfiles { FILE: pkg/meta/pb/backup.pb.go constant _ (line 18) | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) constant _ (line 20) | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) type Format (line 23) | type Format struct method Reset (line 31) | func (x *Format) Reset() { method String (line 38) | func (x *Format) String() string { method ProtoMessage (line 42) | func (*Format) ProtoMessage() {} method ProtoReflect (line 44) | func (x *Format) ProtoReflect() protoreflect.Message { method Descriptor (line 57) | func (*Format) Descriptor() ([]byte, []int) { method GetData (line 61) | func (x *Format) GetData() []byte { type Counter (line 68) | type Counter struct method Reset (line 77) | func (x *Counter) Reset() { method String (line 84) | func (x *Counter) String() string { method ProtoMessage (line 88) | func (*Counter) ProtoMessage() {} method ProtoReflect (line 90) | func (x *Counter) ProtoReflect() protoreflect.Message { method Descriptor (line 103) | func (*Counter) Descriptor() ([]byte, []int) { method GetKey (line 107) | func (x *Counter) GetKey() string { method GetValue (line 114) | func (x *Counter) GetValue() int64 { type Sustained (line 121) | type Sustained struct method Reset (line 130) | func (x *Sustained) Reset() { method String (line 137) | func (x *Sustained) String() string { method ProtoMessage (line 141) | func (*Sustained) ProtoMessage() {} method ProtoReflect (line 143) | func (x *Sustained) ProtoReflect() protoreflect.Message { method Descriptor (line 156) | func (*Sustained) Descriptor() ([]byte, []int) { method GetSid (line 160) | func (x *Sustained) GetSid() uint64 { method GetInodes (line 167) | func (x *Sustained) GetInodes() []uint64 { type DelFile (line 174) | type DelFile struct method Reset (line 184) | func (x *DelFile) Reset() { method String (line 191) | func (x *DelFile) String() string { method ProtoMessage (line 195) | func (*DelFile) ProtoMessage() {} method ProtoReflect (line 197) | func (x *DelFile) ProtoReflect() protoreflect.Message { method Descriptor (line 210) | func (*DelFile) Descriptor() ([]byte, []int) { method GetInode (line 214) | func (x *DelFile) GetInode() uint64 { method GetLength (line 221) | func (x *DelFile) GetLength() uint64 { method GetExpire (line 228) | func (x *DelFile) GetExpire() int64 { type SliceRef (line 235) | type SliceRef struct method Reset (line 245) | func (x *SliceRef) Reset() { method String (line 252) | func (x *SliceRef) String() string { method ProtoMessage (line 256) | func (*SliceRef) ProtoMessage() {} method ProtoReflect (line 258) | func (x *SliceRef) ProtoReflect() protoreflect.Message { method Descriptor (line 271) | func (*SliceRef) Descriptor() ([]byte, []int) { method GetId (line 275) | func (x *SliceRef) GetId() uint64 { method GetSize (line 282) | func (x *SliceRef) GetSize() uint32 { method GetRefs (line 289) | func (x *SliceRef) GetRefs() int64 { type Acl (line 296) | type Acl struct method Reset (line 305) | func (x *Acl) Reset() { method String (line 312) | func (x *Acl) String() string { method ProtoMessage (line 316) | func (*Acl) ProtoMessage() {} method ProtoReflect (line 318) | func (x *Acl) ProtoReflect() protoreflect.Message { method Descriptor (line 331) | func (*Acl) Descriptor() ([]byte, []int) { method GetId (line 335) | func (x *Acl) GetId() uint32 { method GetData (line 342) | func (x *Acl) GetData() []byte { type Xattr (line 349) | type Xattr struct method Reset (line 359) | func (x *Xattr) Reset() { method String (line 366) | func (x *Xattr) String() string { method ProtoMessage (line 370) | func (*Xattr) ProtoMessage() {} method ProtoReflect (line 372) | func (x *Xattr) ProtoReflect() protoreflect.Message { method Descriptor (line 385) | func (*Xattr) Descriptor() ([]byte, []int) { method GetInode (line 389) | func (x *Xattr) GetInode() uint64 { method GetName (line 396) | func (x *Xattr) GetName() string { method GetValue (line 403) | func (x *Xattr) GetValue() []byte { type Quota (line 410) | type Quota struct method Reset (line 422) | func (x *Quota) Reset() { method String (line 429) | func (x *Quota) String() string { method ProtoMessage (line 433) | func (*Quota) ProtoMessage() {} method ProtoReflect (line 435) | func (x *Quota) ProtoReflect() protoreflect.Message { method Descriptor (line 448) | func (*Quota) Descriptor() ([]byte, []int) { method GetInode (line 452) | func (x *Quota) GetInode() uint64 { method GetMaxSpace (line 459) | func (x *Quota) GetMaxSpace() int64 { method GetMaxInodes (line 466) | func (x *Quota) GetMaxInodes() int64 { method GetUsedSpace (line 473) | func (x *Quota) GetUsedSpace() int64 { method GetUsedInodes (line 480) | func (x *Quota) GetUsedInodes() int64 { type Stat (line 487) | type Stat struct method Reset (line 498) | func (x *Stat) Reset() { method String (line 505) | func (x *Stat) String() string { method ProtoMessage (line 509) | func (*Stat) ProtoMessage() {} method ProtoReflect (line 511) | func (x *Stat) ProtoReflect() protoreflect.Message { method Descriptor (line 524) | func (*Stat) Descriptor() ([]byte, []int) { method GetInode (line 528) | func (x *Stat) GetInode() uint64 { method GetDataLength (line 535) | func (x *Stat) GetDataLength() int64 { method GetUsedSpace (line 542) | func (x *Stat) GetUsedSpace() int64 { method GetUsedInodes (line 549) | func (x *Stat) GetUsedInodes() int64 { type Node (line 556) | type Node struct method Reset (line 565) | func (x *Node) Reset() { method String (line 572) | func (x *Node) String() string { method ProtoMessage (line 576) | func (*Node) ProtoMessage() {} method ProtoReflect (line 578) | func (x *Node) ProtoReflect() protoreflect.Message { method Descriptor (line 591) | func (*Node) Descriptor() ([]byte, []int) { method GetInode (line 595) | func (x *Node) GetInode() uint64 { method GetData (line 602) | func (x *Node) GetData() []byte { type Edge (line 609) | type Edge struct method Reset (line 620) | func (x *Edge) Reset() { method String (line 627) | func (x *Edge) String() string { method ProtoMessage (line 631) | func (*Edge) ProtoMessage() {} method ProtoReflect (line 633) | func (x *Edge) ProtoReflect() protoreflect.Message { method Descriptor (line 646) | func (*Edge) Descriptor() ([]byte, []int) { method GetParent (line 650) | func (x *Edge) GetParent() uint64 { method GetInode (line 657) | func (x *Edge) GetInode() uint64 { method GetName (line 664) | func (x *Edge) GetName() []byte { method GetType (line 671) | func (x *Edge) GetType() uint32 { type Parent (line 679) | type Parent struct method Reset (line 689) | func (x *Parent) Reset() { method String (line 696) | func (x *Parent) String() string { method ProtoMessage (line 700) | func (*Parent) ProtoMessage() {} method ProtoReflect (line 702) | func (x *Parent) ProtoReflect() protoreflect.Message { method Descriptor (line 715) | func (*Parent) Descriptor() ([]byte, []int) { method GetInode (line 719) | func (x *Parent) GetInode() uint64 { method GetParent (line 726) | func (x *Parent) GetParent() uint64 { method GetCnt (line 733) | func (x *Parent) GetCnt() int64 { type Chunk (line 740) | type Chunk struct method Reset (line 750) | func (x *Chunk) Reset() { method String (line 757) | func (x *Chunk) String() string { method ProtoMessage (line 761) | func (*Chunk) ProtoMessage() {} method ProtoReflect (line 763) | func (x *Chunk) ProtoReflect() protoreflect.Message { method Descriptor (line 776) | func (*Chunk) Descriptor() ([]byte, []int) { method GetInode (line 780) | func (x *Chunk) GetInode() uint64 { method GetIndex (line 787) | func (x *Chunk) GetIndex() uint32 { method GetSlices (line 794) | func (x *Chunk) GetSlices() []byte { type Symlink (line 801) | type Symlink struct method Reset (line 810) | func (x *Symlink) Reset() { method String (line 817) | func (x *Symlink) String() string { method ProtoMessage (line 821) | func (*Symlink) ProtoMessage() {} method ProtoReflect (line 823) | func (x *Symlink) ProtoReflect() protoreflect.Message { method Descriptor (line 836) | func (*Symlink) Descriptor() ([]byte, []int) { method GetInode (line 840) | func (x *Symlink) GetInode() uint64 { method GetTarget (line 847) | func (x *Symlink) GetTarget() []byte { type Batch (line 854) | type Batch struct method Reset (line 874) | func (x *Batch) Reset() { method String (line 881) | func (x *Batch) String() string { method ProtoMessage (line 885) | func (*Batch) ProtoMessage() {} method ProtoReflect (line 887) | func (x *Batch) ProtoReflect() protoreflect.Message { method Descriptor (line 900) | func (*Batch) Descriptor() ([]byte, []int) { method GetNodes (line 904) | func (x *Batch) GetNodes() []*Node { method GetEdges (line 911) | func (x *Batch) GetEdges() []*Edge { method GetChunks (line 918) | func (x *Batch) GetChunks() []*Chunk { method GetSliceRefs (line 925) | func (x *Batch) GetSliceRefs() []*SliceRef { method GetXattrs (line 932) | func (x *Batch) GetXattrs() []*Xattr { method GetParents (line 939) | func (x *Batch) GetParents() []*Parent { method GetSymlinks (line 946) | func (x *Batch) GetSymlinks() []*Symlink { method GetSustained (line 953) | func (x *Batch) GetSustained() []*Sustained { method GetDelfiles (line 960) | func (x *Batch) GetDelfiles() []*DelFile { method GetDirstats (line 967) | func (x *Batch) GetDirstats() []*Stat { method GetQuotas (line 974) | func (x *Batch) GetQuotas() []*Quota { method GetAcls (line 981) | func (x *Batch) GetAcls() []*Acl { method GetCounters (line 988) | func (x *Batch) GetCounters() []*Counter { type Footer (line 995) | type Footer struct method Reset (line 1005) | func (x *Footer) Reset() { method String (line 1012) | func (x *Footer) String() string { method ProtoMessage (line 1016) | func (*Footer) ProtoMessage() {} method ProtoReflect (line 1018) | func (x *Footer) ProtoReflect() protoreflect.Message { method Descriptor (line 1031) | func (*Footer) Descriptor() ([]byte, []int) { method GetMagic (line 1035) | func (x *Footer) GetMagic() uint32 { method GetVersion (line 1042) | func (x *Footer) GetVersion() uint32 { method GetInfos (line 1049) | func (x *Footer) GetInfos() map[string]*Footer_SegInfo { type Footer_SegInfo (line 1056) | type Footer_SegInfo struct method Reset (line 1065) | func (x *Footer_SegInfo) Reset() { method String (line 1072) | func (x *Footer_SegInfo) String() string { method ProtoMessage (line 1076) | func (*Footer_SegInfo) ProtoMessage() {} method ProtoReflect (line 1078) | func (x *Footer_SegInfo) ProtoReflect() protoreflect.Message { method Descriptor (line 1091) | func (*Footer_SegInfo) Descriptor() ([]byte, []int) { method GetOffset (line 1095) | func (x *Footer_SegInfo) GetOffset() []uint64 { method GetNum (line 1102) | func (x *Footer_SegInfo) GetNum() uint64 { function file_pkg_meta_pb_backup_proto_rawDescGZIP (line 1232) | func file_pkg_meta_pb_backup_proto_rawDescGZIP() []byte { function init (line 1283) | func init() { file_pkg_meta_pb_backup_proto_init() } function file_pkg_meta_pb_backup_proto_init (line 1284) | func file_pkg_meta_pb_backup_proto_init() { FILE: pkg/meta/quota.go type dirStat (line 33) | type dirStat struct constant DirQuotaType (line 40) | DirQuotaType = iota constant UserQuotaType (line 41) | UserQuotaType constant GroupQuotaType (line 42) | GroupQuotaType type Quota (line 45) | type Quota struct method check (line 58) | func (q *Quota) check(space, inodes int64) bool { method update (line 74) | func (q *Quota) update(space, inodes int64) { method snap (line 79) | func (q *Quota) snap() Quota { method sanitize (line 91) | func (q *Quota) sanitize() { type iQuota (line 51) | type iQuota struct method parallelSyncDirStat (line 106) | func (m *baseMeta) parallelSyncDirStat(ctx Context, inos map[Ino]bool) *... method groupBatch (line 121) | func (m *baseMeta) groupBatch(batch map[Ino]dirStat, size int) [][]Ino { method calcDirStat (line 140) | func (m *baseMeta) calcDirStat(ctx Context, ino Ino) (*dirStat, syscall.... method GetDirStat (line 162) | func (m *baseMeta) GetDirStat(ctx Context, inode Ino) (stat *dirStat, st... method updateDirStat (line 173) | func (m *baseMeta) updateDirStat(ctx Context, ino Ino, length, space, in... method updateParentStat (line 186) | func (m *baseMeta) updateParentStat(ctx Context, inode, parent Ino, leng... method flushDirStat (line 207) | func (m *baseMeta) flushDirStat(ctx Context) { method doFlushDirStat (line 226) | func (m *baseMeta) doFlushDirStat() { method flushStats (line 244) | func (m *baseMeta) flushStats(ctx Context) { method doFlushStats (line 258) | func (m *baseMeta) doFlushStats() { method syncVolumeStat (line 264) | func (m *baseMeta) syncVolumeStat(ctx Context) error { method checkQuota (line 268) | func (m *baseMeta) checkQuota(ctx Context, space, inodes int64, uid, gid... method loadQuotas (line 297) | func (m *baseMeta) loadQuotas() { method syncQuotaMaps (line 316) | func (m *baseMeta) syncQuotaMaps(existing map[uint64]*Quota, loaded map[... method getDirParent (line 340) | func (m *baseMeta) getDirParent(ctx Context, inode Ino) (Ino, syscall.Er... method getQuotaParent (line 354) | func (m *baseMeta) getQuotaParent(ctx Context, inode Ino) (Ino, *Quota) { method checkDirQuota (line 379) | func (m *baseMeta) checkDirQuota(ctx Context, inode Ino, space, inodes i... method checkUserQuota (line 404) | func (m *baseMeta) checkUserQuota(ctx Context, uid uint64, space, inodes... method checkGroupQuota (line 420) | func (m *baseMeta) checkGroupQuota(ctx Context, gid uint64, space, inode... method updateDirQuota (line 436) | func (m *baseMeta) updateDirQuota(ctx Context, inode Ino, space, inodes ... method updateUserGroupStat (line 460) | func (m *baseMeta) updateUserGroupStat(ctx Context, uid, gid uint32, spa... method flushQuotas (line 499) | func (m *baseMeta) flushQuotas(ctx Context) { method collectQuotas (line 513) | func (m *baseMeta) collectQuotas(qtype uint32, quotas map[uint64]*Quota)... method updateQuota (line 529) | func (m *baseMeta) updateQuota(q *Quota, newSpace, newInodes int64) { method doFlushQuotas (line 536) | func (m *baseMeta) doFlushQuotas() { method HandleQuota (line 574) | func (m *baseMeta) HandleQuota(ctx Context, cmd uint8, dpath string, uid... method handleQuotaSet (line 619) | func (m *baseMeta) handleQuotaSet(ctx Context, qtype uint32, key uint64,... method initializeQuotaUsage (line 673) | func (m *baseMeta) initializeQuotaUsage(ctx Context, qtype uint32, key u... method ScanUserGroupUsage (line 703) | func (m *baseMeta) ScanUserGroupUsage(ctx Context) error { method scanGlobalUserGroupUsage (line 771) | func (m *baseMeta) scanGlobalUserGroupUsage(ctx Context) (map[uint64]*Su... method handleQuotaGet (line 851) | func (m *baseMeta) handleQuotaGet(ctx Context, qtype uint32, key uint64,... method handleQuotaList (line 870) | func (m *baseMeta) handleQuotaList(ctx Context, qtype uint32, key uint64... method handleQuotaCheck (line 906) | func (m *baseMeta) handleQuotaCheck(ctx Context, qtype uint32, key uint6... method updateQuotaMetrics (line 952) | func (m *baseMeta) updateQuotaMetrics() { method updateDirQuotaMetrics (line 974) | func (m *baseMeta) updateDirQuotaMetrics(dirQuotas map[uint64]Quota) { method updateUserQuotaMetrics (line 987) | func (m *baseMeta) updateUserQuotaMetrics(userQuotas map[uint64]Quota) { method updateGroupQuotaMetrics (line 1000) | func (m *baseMeta) updateGroupQuotaMetrics(groupQuotas map[uint64]Quota) { method cleanupQuotaMetrics (line 1013) | func (m *baseMeta) cleanupQuotaMetrics() { FILE: pkg/meta/random_test.go type tSlice (line 40) | type tSlice struct type tQuota (line 48) | type tQuota struct type tNode (line 53) | type tNode struct method accessMode (line 78) | func (n *tNode) accessMode(uid uint32, gids []uint32) uint8 { method access (line 94) | func (n *tNode) access(ctx Context, mask uint8) bool { method stickyAccess (line 110) | func (n *tNode) stickyAccess(child *tNode, uid uint32) bool { method stat (line 1796) | func (n *tNode) stat(visited map[Ino]struct{}) (uint64, uint64) { type fsMachine (line 120) | type fsMachine struct method Init (line 130) | func (m *fsMachine) Init(t *rapid.T) { method genName (line 170) | func (m *fsMachine) genName(t *rapid.T) string { method Cleanup (line 178) | func (m *fsMachine) Cleanup() { method prepare (line 184) | func (m *fsMachine) prepare(t *rapid.T) { method pickNode (line 192) | func (m *fsMachine) pickNode(t *rapid.T) Ino { method create (line 202) | func (m *fsMachine) create(_type uint8, parent Ino, name string, mode,... method link (line 316) | func (m *fsMachine) link(parent Ino, name string, inode Ino) syscall.E... method symlink (line 352) | func (m *fsMachine) symlink(parent Ino, name string, inode Ino, target... method readlink (line 420) | func (m *fsMachine) readlink(inode Ino) (string, syscall.Errno) { method pickChild (line 431) | func (m *fsMachine) pickChild(parent Ino, t *rapid.T) string { method unlink (line 444) | func (m *fsMachine) unlink(parent Ino, name string) syscall.Errno { method rmdir (line 496) | func (m *fsMachine) rmdir(parent Ino, name string) syscall.Errno { method lookup (line 548) | func (m *fsMachine) lookup(parent Ino, name string, checkPerm bool) (I... method getattr (line 577) | func (m *fsMachine) getattr(inode Ino) (*tNode, syscall.Errno) { method doMknod (line 585) | func (m *fsMachine) doMknod(inode Ino) (*tNode, syscall.Errno) { method setattr (line 593) | func (m *fsMachine) setattr(inode Ino, attr Attr) syscall.Errno { method truncate (line 602) | func (m *fsMachine) truncate(inode Ino, length uint64) syscall.Errno { method fallocate (line 635) | func (m *fsMachine) fallocate(inode Ino, mode uint8, offset uint64, si... method copy_file_range (line 654) | func (m *fsMachine) copy_file_range(srcinode Ino, srcoff uint64, dstin... method rmr (line 740) | func (m *fsMachine) rmr(parent Ino, name string, removed *uint64) sysc... method isancestor (line 785) | func (m *fsMachine) isancestor(a, b *tNode) bool { method rename (line 797) | func (m *fsMachine) rename(srcparent Ino, srcname string, dstparent In... method readdir (line 941) | func (m *fsMachine) readdir(inode Ino) ([]*tEntry, syscall.Errno) { method write (line 968) | func (m *fsMachine) write(inode Ino, indx uint32, pos uint32, chunkid ... method read (line 990) | func (m *fsMachine) read(inode Ino, indx uint32) (uint64, []tSlice, sy... method setxattr (line 1043) | func (m *fsMachine) setxattr(inode Ino, name string, value []byte, mod... method removexattr (line 1071) | func (m *fsMachine) removexattr(inode Ino, name string) syscall.Errno { method getxattr (line 1087) | func (m *fsMachine) getxattr(inode Ino, name string) ([]byte, syscall.... method listxattr (line 1101) | func (m *fsMachine) listxattr(inode Ino) ([]byte, syscall.Errno) { method Mkdir (line 1126) | func (m *fsMachine) Mkdir(t *rapid.T) { method Mknod (line 1145) | func (m *fsMachine) Mknod(t *rapid.T) { method Link (line 1162) | func (m *fsMachine) Link(t *rapid.T) { method Rmdir (line 1172) | func (m *fsMachine) Rmdir(t *rapid.T) { method Unlink (line 1185) | func (m *fsMachine) Unlink(t *rapid.T) { method Symlink (line 1200) | func (m *fsMachine) Symlink(t *rapid.T) { method Readlink (line 1218) | func (m *fsMachine) Readlink(t *rapid.T) { method Lookup (line 1231) | func (m *fsMachine) Lookup(t *rapid.T) { method Getattr (line 1249) | func (m *fsMachine) Getattr(t *rapid.T) { method Rename (line 1281) | func (m *fsMachine) Rename(t *rapid.T) { method Readdir (line 1348) | func (m *fsMachine) Readdir(t *rapid.T) { method Fallocate (line 1386) | func (m *fsMachine) Fallocate(t *rapid.T) { method getPath (line 1412) | func (m *fsMachine) getPath(inode Ino) string { method Write (line 1429) | func (m *fsMachine) Write(t *rapid.T) { method Read (line 1445) | func (m *fsMachine) Read(t *rapid.T) { method SetXAttr (line 1490) | func (m *fsMachine) SetXAttr(t *rapid.T) { method RemoveXattr (line 1502) | func (m *fsMachine) RemoveXattr(t *rapid.T) { method GetXAttr (line 1516) | func (m *fsMachine) GetXAttr(t *rapid.T) { method ListXAttr (line 1530) | func (m *fsMachine) ListXAttr(t *rapid.T) { method Check (line 1547) | func (m *fsMachine) Check(t *rapid.T) { method checkFSTree (line 1554) | func (m *fsMachine) checkFSTree(root Ino) error { method setfacl (line 1664) | func (m *fsMachine) setfacl(inode Ino, atype uint8, rule *aclAPI.Rule)... method Setfacl (line 1704) | func (m *fsMachine) Setfacl(t *rapid.T) { method getfacl (line 1739) | func (m *fsMachine) getfacl(inode Ino, atype uint8) (*aclAPI.Rule, sys... method GetACL (line 1760) | func (m *fsMachine) GetACL(t *rapid.T) { method RemoveACL (line 1775) | func (m *fsMachine) RemoveACL(t *rapid.T) { method statfs (line 1814) | func (m *fsMachine) statfs(format Format) (uint64, uint64, uint64, uin... method StatFS (line 1846) | func (m *fsMachine) StatFS(t *rapid.T) { method amtime (line 1855) | func (m *fsMachine) amtime(inode Ino, flag uint16, atime, mtime int64,... method SetAmtime (line 1883) | func (m *fsMachine) SetAmtime(t *rapid.T) { method chmod (line 1923) | func (m *fsMachine) chmod(inode Ino, mode uint16) syscall.Errno { method Chmod (line 1942) | func (m *fsMachine) Chmod(t *rapid.T) { method chown (line 1952) | func (m *fsMachine) chown(inode Ino, flag uint16, uid, gid uint32) sys... method Chown (line 1978) | func (m *fsMachine) Chown(t *rapid.T) { method flock (line 1996) | func (m *fsMachine) flock(inode Ino, owner uint64, typ uint32) syscall... method Flock (line 2030) | func (m *fsMachine) Flock(t *rapid.T) { method listLocks (line 2081) | func (m *fsMachine) listLocks(inode Ino) ([]PLockItem, []FLockItem, er... method ListLocks (line 2112) | func (m *fsMachine) ListLocks(t *rapid.T) { method getlk (line 2143) | func (m *fsMachine) getlk(inode Ino, owner uint64, ltype *uint32, star... method Getlk (line 2176) | func (m *fsMachine) Getlk(t *rapid.T) { method setlk (line 2198) | func (m *fsMachine) setlk(inode Ino, owner uint64, ltype uint32, start... method Setlk (line 2232) | func (m *fsMachine) Setlk(t *rapid.T) { function checkFSNodeName (line 294) | func checkFSNodeName(name string) syscall.Errno { type tEntry (line 936) | type tEntry struct function buildSlice2 (line 1016) | func buildSlice2(ss []*slice) []tSlice { constant SymlinkMax (line 1198) | SymlinkMax = 65536 function cleanupSlices (line 1468) | func cleanupSlices(ss []tSlice) []tSlice { constant XATTR_REMOVE (line 1512) | XATTR_REMOVE = 5 constant XATTR_NAME_MAX (line 1513) | XATTR_NAME_MAX = 255 constant XATTR_SIZE_MAX (line 1514) | XATTR_SIZE_MAX = 65536 function compareLocks (line 2105) | func compareLocks[T any](l1, l2 []T) bool { function init (line 2249) | func init() { function defaultFlag (line 2255) | func defaultFlag(name string, value string) func() { function TestFSOps (line 2265) | func TestFSOps(t *testing.T) { FILE: pkg/meta/redis.go type redisMeta (line 91) | type redisMeta struct method Shutdown (line 297) | func (m *redisMeta) Shutdown() error { method NewSession (line 306) | func (m *redisMeta) NewSession(record bool) error { method doDeleteSlice (line 316) | func (m *redisMeta) doDeleteSlice(id uint64, size uint32) error { method Name (line 320) | func (m *redisMeta) Name() string { method doInit (line 324) | func (m *redisMeta) doInit(format *Format, force bool) error { method cacheACLs (line 389) | func (m *redisMeta) cacheACLs(ctx Context) error { method Reset (line 408) | func (m *redisMeta) Reset() error { method doLoad (line 417) | func (m *redisMeta) doLoad() ([]byte, error) { method doNewSession (line 425) | func (m *redisMeta) doNewSession(sinfo []byte, update bool) error { method getCounter (line 451) | func (m *redisMeta) getCounter(name string) (int64, error) { method incrCounter (line 459) | func (m *redisMeta) incrCounter(name string, value int64) (int64, erro... method setIfSmall (line 473) | func (m *redisMeta) setIfSmall(name string, value, diff int64) (bool, ... method getSession (line 498) | func (m *redisMeta) getSession(sid string, detail bool) (*Session, err... method GetSession (line 552) | func (m *redisMeta) GetSession(sid uint64, detail bool) (*Session, err... method ListSessions (line 577) | func (m *redisMeta) ListSessions() ([]*Session, error) { method sustained (line 611) | func (m *redisMeta) sustained(sid uint64) string { method lockedKey (line 615) | func (m *redisMeta) lockedKey(sid uint64) string { method symKey (line 619) | func (m *redisMeta) symKey(inode Ino) string { method inodeKey (line 623) | func (m *redisMeta) inodeKey(inode Ino) string { method entryKey (line 627) | func (m *redisMeta) entryKey(parent Ino) string { method parentKey (line 631) | func (m *redisMeta) parentKey(inode Ino) string { method chunkKey (line 635) | func (m *redisMeta) chunkKey(inode Ino, indx uint32) string { method sliceKey (line 639) | func (m *redisMeta) sliceKey(id uint64, size uint32) string { method xattrKey (line 644) | func (m *redisMeta) xattrKey(inode Ino) string { method flockKey (line 648) | func (m *redisMeta) flockKey(inode Ino) string { method ownerKey (line 652) | func (m *redisMeta) ownerKey(owner uint64) string { method plockKey (line 656) | func (m *redisMeta) plockKey(inode Ino) string { method setting (line 660) | func (m *redisMeta) setting() string { method usedSpaceKey (line 664) | func (m *redisMeta) usedSpaceKey() string { method nextTrashKey (line 668) | func (m *redisMeta) nextTrashKey() string { method counterKey (line 672) | func (m *redisMeta) counterKey(name string) string { method dirDataLengthKey (line 679) | func (m *redisMeta) dirDataLengthKey() string { method dirUsedSpaceKey (line 683) | func (m *redisMeta) dirUsedSpaceKey() string { method dirUsedInodesKey (line 687) | func (m *redisMeta) dirUsedInodesKey() string { method dirQuotaUsedSpaceKey (line 691) | func (m *redisMeta) dirQuotaUsedSpaceKey() string { method dirQuotaUsedInodesKey (line 695) | func (m *redisMeta) dirQuotaUsedInodesKey() string { method dirQuotaKey (line 699) | func (m *redisMeta) dirQuotaKey() string { method userQuotaUsedSpaceKey (line 703) | func (m *redisMeta) userQuotaUsedSpaceKey() string { method userQuotaUsedInodesKey (line 707) | func (m *redisMeta) userQuotaUsedInodesKey() string { method userQuotaKey (line 711) | func (m *redisMeta) userQuotaKey() string { method groupQuotaUsedSpaceKey (line 715) | func (m *redisMeta) groupQuotaUsedSpaceKey() string { method groupQuotaUsedInodesKey (line 719) | func (m *redisMeta) groupQuotaUsedInodesKey() string { method groupQuotaKey (line 723) | func (m *redisMeta) groupQuotaKey() string { method totalInodesKey (line 727) | func (m *redisMeta) totalInodesKey() string { method aclKey (line 731) | func (m *redisMeta) aclKey() string { method krbTokenKey (line 735) | func (m *redisMeta) krbTokenKey() string { method delfiles (line 739) | func (m *redisMeta) delfiles() string { method detachedNodes (line 743) | func (m *redisMeta) detachedNodes() string { method delSlices (line 747) | func (r *redisMeta) delSlices() string { method allSessions (line 751) | func (r *redisMeta) allSessions() string { method sessionInfos (line 755) | func (m *redisMeta) sessionInfos() string { method sliceRefs (line 759) | func (m *redisMeta) sliceRefs() string { method packQuota (line 763) | func (m *redisMeta) packQuota(space, inodes int64) []byte { method parseQuota (line 770) | func (m *redisMeta) parseQuota(buf []byte) (space, inodes int64) { method packEntry (line 782) | func (m *redisMeta) packEntry(_type uint8, inode Ino) []byte { method parseEntry (line 789) | func (m *redisMeta) parseEntry(buf []byte) (uint8, Ino) { method updateStats (line 796) | func (m *redisMeta) updateStats(space int64, inodes int64) { method doSyncVolumeStat (line 801) | func (m *redisMeta) doSyncVolumeStat(ctx Context) error { method doFlushStats (line 893) | func (m *redisMeta) doFlushStats() {} method handleLuaResult (line 895) | func (m *redisMeta) handleLuaResult(op string, res interface{}, err er... method doLookup (line 955) | func (m *redisMeta) doLookup(ctx Context, parent Ino, name string, ino... method Resolve (line 1018) | func (m *redisMeta) Resolve(ctx Context, parent Ino, path string, inod... method doGetAttr (line 1045) | func (m *redisMeta) doGetAttr(ctx Context, inode Ino, attr *Attr) sysc... method shouldRetry (line 1057) | func (m *redisMeta) shouldRetry(err error, retryOnFailure bool) bool { method txn (line 1121) | func (m *redisMeta) txn(ctx Context, txf func(tx *redis.Tx) error, key... method doTruncate (line 1173) | func (m *redisMeta) doTruncate(ctx Context, inode Ino, flags uint8, le... method doFallocate (line 1263) | func (m *redisMeta) doFallocate(ctx Context, inode Ino, mode uint8, of... method doSetAttr (line 1332) | func (m *redisMeta) doSetAttr(ctx Context, inode Ino, set uint16, sugi... method doReadlink (line 1380) | func (m *redisMeta) doReadlink(ctx Context, inode Ino, noatime bool) (... method doMknod (line 1423) | func (m *redisMeta) doMknod(ctx Context, parent Ino, name string, _typ... method doUnlink (line 1574) | func (m *redisMeta) doUnlink(ctx Context, parent Ino, name string, att... method doBatchUnlink (line 1728) | func (m *redisMeta) doBatchUnlink(ctx Context, parent Ino, entries []*... method doRmdir (line 2092) | func (m *redisMeta) doRmdir(ctx Context, parent Ino, name string, pino... method doRename (line 2209) | func (m *redisMeta) doRename(ctx Context, parentSrc Ino, nameSrc strin... method doLink (line 2524) | func (m *redisMeta) doLink(ctx Context, inode, parent Ino, name string... method fillAttr (line 2597) | func (m *redisMeta) fillAttr(ctx Context, es []*Entry) error { method doReaddir (line 2620) | func (m *redisMeta) doReaddir(ctx Context, inode Ino, plus uint8, entr... method doCleanStaleSession (line 2688) | func (m *redisMeta) doCleanStaleSession(sid uint64) error { method doFindStaleSessions (line 2757) | func (m *redisMeta) doFindStaleSessions(limit int) ([]uint64, error) { method doRefreshSession (line 2790) | func (m *redisMeta) doRefreshSession() error { method doDeleteSustainedInode (line 2807) | func (m *redisMeta) doDeleteSustainedInode(sid uint64, inode Ino) error { method doRead (line 2840) | func (m *redisMeta) doRead(ctx Context, inode Ino, indx uint32) ([]*sl... method doList (line 2848) | func (m *redisMeta) doList(ctx Context, inode Ino) ([]*slice, syscall.... method doWrite (line 2883) | func (m *redisMeta) doWrite(ctx Context, inode Ino, indx uint32, off u... method CopyFileRange (line 2928) | func (m *redisMeta) CopyFileRange(ctx Context, fin Ino, offIn uint64, ... method getParents (line 3067) | func (m *redisMeta) getParents(ctx Context, tx *redis.Tx, inode, paren... method doGetParents (line 3086) | func (m *redisMeta) doGetParents(ctx Context, inode Ino) map[Ino]int { method doSyncDirStat (line 3102) | func (m *redisMeta) doSyncDirStat(ctx Context, ino Ino) (*dirStat, sys... method doUpdateDirStat (line 3130) | func (m *redisMeta) doUpdateDirStat(ctx Context, batch map[Ino]dirStat... method doGetDirStat (line 3185) | func (m *redisMeta) doGetDirStat(ctx Context, ino Ino, trySync bool) (... method cleanupLegacies (line 3213) | func (m *redisMeta) cleanupLegacies() { method doFindDeletedFiles (line 3241) | func (m *redisMeta) doFindDeletedFiles(ts int64, limit int) (map[Ino]u... method doCleanupSlices (line 3259) | func (m *redisMeta) doCleanupSlices(ctx Context, count *uint64) error { method cleanupZeroRef (line 3286) | func (m *redisMeta) cleanupZeroRef(key string) { method cleanupLeakedChunks (line 3304) | func (m *redisMeta) cleanupLeakedChunks(delete bool) { method cleanupOldSliceRefs (line 3347) | func (m *redisMeta) cleanupOldSliceRefs(delete bool) { method toDelete (line 3377) | func (m *redisMeta) toDelete(inode Ino, length uint64) string { method deleteChunk (line 3381) | func (m *redisMeta) deleteChunk(inode Ino, indx uint32) error { method doDeleteFileData (line 3420) | func (m *redisMeta) doDeleteFileData(inode Ino, length uint64) { method doDeleteFileData_ (line 3424) | func (m *redisMeta) doDeleteFileData_(inode Ino, length uint64, tracki... method doCleanupDelayedSlices (line 3460) | func (r *redisMeta) doCleanupDelayedSlices(ctx Context, edge int64) (i... method doCompactChunk (line 3522) | func (m *redisMeta) doCompactChunk(inode Ino, indx uint32, origin []by... method scanAllChunks (line 3591) | func (m *redisMeta) scanAllChunks(ctx Context, ch chan<- cchunk, bar *... method cleanupLeakedInodes (line 3622) | func (m *redisMeta) cleanupLeakedInodes(delete bool) { method scan (line 3672) | func (m *redisMeta) scan(ctx context.Context, pattern string, f func([... method hscan (line 3704) | func (m *redisMeta) hscan(ctx context.Context, key string, f func([]st... method ListSlices (line 3725) | func (m *redisMeta) ListSlices(ctx Context, slices map[Ino][]Slice, sc... method scanTrashSlices (line 3807) | func (m *redisMeta) scanTrashSlices(ctx Context, scan trashSliceScan) ... method scanPendingSlices (line 3879) | func (m *redisMeta) scanPendingSlices(ctx Context, scan pendingSliceSc... method scanPendingFiles (line 3932) | func (m *redisMeta) scanPendingFiles(ctx Context, scan pendingFileScan... method doRepair (line 3973) | func (m *redisMeta) doRepair(ctx Context, inode Ino, attr *Attr) sysca... method GetXattr (line 3994) | func (m *redisMeta) GetXattr(ctx Context, inode Ino, name string, vbuf... method ListXattr (line 4005) | func (m *redisMeta) ListXattr(ctx Context, inode Ino, names *[]byte) s... method doSetXattr (line 4028) | func (m *redisMeta) doSetXattr(ctx Context, inode Ino, name string, va... method doRemoveXattr (line 4059) | func (m *redisMeta) doRemoveXattr(ctx Context, inode Ino, name string)... method getQuotaKeys (line 4076) | func (m *redisMeta) getQuotaKeys(qtype uint32) (*quotaKeys, error) { method doGetQuota (line 4101) | func (m *redisMeta) doGetQuota(ctx Context, qtype uint32, key uint64) ... method doSetQuota (line 4136) | func (m *redisMeta) doSetQuota(ctx Context, qtype uint32, key uint64, ... method doDelQuota (line 4183) | func (m *redisMeta) doDelQuota(ctx Context, qtype uint32, key uint64) ... method doLoadQuotas (line 4204) | func (m *redisMeta) doLoadQuotas(ctx Context) (map[uint64]*Quota, map[... method doFlushQuotas (line 4269) | func (m *redisMeta) doFlushQuotas(ctx Context, quotas []*iQuota) error { method checkServerConfig (line 4287) | func (m *redisMeta) checkServerConfig() { method dumpEntries (line 4318) | func (m *redisMeta) dumpEntries(es ...*DumpedEntry) error { method dumpDir (line 4492) | func (m *redisMeta) dumpDir(inode Ino, tree *DumpedEntry, bw *bufio.Wr... method DumpMeta (line 4595) | func (m *redisMeta) DumpMeta(w io.Writer, root Ino, threads int, keepS... method loadEntry (line 4753) | func (m *redisMeta) loadEntry(e *DumpedEntry, p redis.Pipeliner, tryEx... method LoadMeta (line 4826) | func (m *redisMeta) LoadMeta(r io.Reader) (err error) { method doCloneEntry (line 4948) | func (m *redisMeta) doCloneEntry(ctx Context, srcIno Ino, parent Ino, ... method doBatchClone (line 5075) | func (m *redisMeta) doBatchClone(ctx Context, srcParent Ino, dstParent... method doCleanupDetachedNode (line 5080) | func (m *redisMeta) doCleanupDetachedNode(ctx Context, ino Ino) syscal... method doFindDetachedNodes (line 5107) | func (m *redisMeta) doFindDetachedNodes(t time.Time) []Ino { method doAttachDirNode (line 5121) | func (m *redisMeta) doAttachDirNode(ctx Context, parent Ino, dstIno In... method doTouchAtime (line 5158) | func (m *redisMeta) doTouchAtime(ctx Context, inode Ino, attr *Attr, n... method doSetFacl (line 5182) | func (m *redisMeta) doSetFacl(ctx Context, ino Ino, aclType uint8, rul... method doGetFacl (line 5247) | func (m *redisMeta) doGetFacl(ctx Context, ino Ino, aclType uint8, acl... method getACL (line 5271) | func (m *redisMeta) getACL(ctx Context, tx *redis.Tx, id uint32) (*acl... method insertACL (line 5299) | func (m *redisMeta) insertACL(ctx Context, tx *redis.Tx, rule *aclAPI.... method tryLoadMissACLs (line 5326) | func (m *redisMeta) tryLoadMissACLs(ctx Context, tx *redis.Tx) error { method loadDumpedACLs (line 5349) | func (m *redisMeta) loadDumpedACLs(ctx Context) error { method doStoreToken (line 5371) | func (m *redisMeta) doStoreToken(ctx Context, token []byte) (id uint32... method doUpdateToken (line 5386) | func (m *redisMeta) doUpdateToken(ctx Context, id uint32, token []byte... method doLoadToken (line 5399) | func (m *redisMeta) doLoadToken(ctx Context, id uint32) (token []byte,... method doDeleteTokens (line 5414) | func (m *redisMeta) doDeleteTokens(ctx Context, ids []uint32) syscall.... method doListTokens (line 5424) | func (m *redisMeta) doListTokens(ctx Context) (tokens map[uint32][]byt... method newDirHandler (line 5444) | func (m *redisMeta) newDirHandler(inode Ino, plus bool, entries []*Ent... function init (line 103) | func init() { function newRedisMeta (line 110) | func newRedisMeta(driver, addr string, conf *Config) (Meta, error) { type timeoutError (line 1053) | type timeoutError interface type errNo (line 1104) | type errNo method Error (line 1106) | func (e errNo) Error() string { function replaceErrno (line 1111) | func replaceErrno(txf func(tx *redis.Tx) error) func(tx *redis.Tx) error { type quotaKeys (line 4070) | type quotaKeys struct type redisDirHandler (line 5454) | type redisDirHandler struct method Close (line 5466) | func (s *redisDirHandler) Close() { method Delete (line 5473) | func (s *redisDirHandler) Delete(name string) { method Insert (line 5493) | func (s *redisDirHandler) Insert(inode Ino, name string, attr *Attr) { method List (line 5506) | func (s *redisDirHandler) List(ctx Context, offset int) ([]*Entry, sys... method Read (line 5592) | func (s *redisDirHandler) Read(offset int) { FILE: pkg/meta/redis_bak.go method dump (line 44) | func (m *redisMeta) dump(ctx Context, opt *DumpOption, ch chan<- *dumped... method dumpCounters (line 65) | func (m *redisMeta) dumpCounters(ctx Context, opt *DumpOption, ch chan<-... method dumpMix (line 80) | func (m *redisMeta) dumpMix(ctx Context, opt *DumpOption, ch chan<- *dum... method dumpSustained (line 212) | func (m *redisMeta) dumpSustained(ctx Context, opt *DumpOption, ch chan<... method dumpDelFiles (line 239) | func (m *redisMeta) dumpDelFiles(ctx Context, opt *DumpOption, ch chan<-... method dumpSliceRef (line 265) | func (m *redisMeta) dumpSliceRef(ctx Context, opt *DumpOption, ch chan<-... method dumpACL (line 301) | func (m *redisMeta) dumpACL(ctx Context, opt *DumpOption, ch chan<- *dum... method dumpQuota (line 318) | func (m *redisMeta) dumpQuota(ctx Context, opt *DumpOption, ch chan<- *d... method dumpDirStat (line 383) | func (m *redisMeta) dumpDirStat(ctx Context, opt *DumpOption, ch chan<- ... method dumpNodes (line 453) | func (m *redisMeta) dumpNodes(ctx context.Context, ch chan<- *dumpedResu... method dumpEdges (line 474) | func (m *redisMeta) dumpEdges(ctx context.Context, ch chan<- *dumpedResu... method dumpChunks (line 506) | func (m *redisMeta) dumpChunks(ctx context.Context, ch chan<- *dumpedRes... method dumpSymlinks (line 561) | func (m *redisMeta) dumpSymlinks(ctx context.Context, ch chan<- *dumpedR... method dumpXattrs (line 585) | func (m *redisMeta) dumpXattrs(ctx context.Context, ch chan<- *dumpedRes... method dumpParents (line 616) | func (m *redisMeta) dumpParents(ctx context.Context, ch chan<- *dumpedRe... method load (line 650) | func (m *redisMeta) load(ctx Context, typ int, opt *LoadOption, val prot... function execPipe (line 686) | func execPipe(ctx context.Context, pipe redis.Pipeliner) error { method loadFormat (line 701) | func (m *redisMeta) loadFormat(ctx Context, msg proto.Message) error { method loadCounters (line 705) | func (m *redisMeta) loadCounters(ctx Context, msg proto.Message) error { method loadNodes (line 718) | func (m *redisMeta) loadNodes(ctx Context, msg proto.Message) error { method loadEdges (line 732) | func (m *redisMeta) loadEdges(ctx Context, msg proto.Message) error { method loadChunks (line 749) | func (m *redisMeta) loadChunks(ctx Context, msg proto.Message) error { method loadSymlinks (line 768) | func (m *redisMeta) loadSymlinks(ctx Context, msg proto.Message) error { method loadSustained (line 788) | func (m *redisMeta) loadSustained(ctx Context, msg proto.Message) error { method loadDelFiles (line 805) | func (m *redisMeta) loadDelFiles(ctx Context, msg proto.Message) error { method loadSliceRefs (line 820) | func (m *redisMeta) loadSliceRefs(ctx Context, msg proto.Message) error { method loadAcl (line 834) | func (m *redisMeta) loadAcl(ctx Context, msg proto.Message) error { method loadXattrs (line 855) | func (m *redisMeta) loadXattrs(ctx Context, msg proto.Message) error { method loadQuota (line 876) | func (m *redisMeta) loadQuota(ctx Context, msg proto.Message) error { method loadDirStats (line 893) | func (m *redisMeta) loadDirStats(ctx Context, msg proto.Message) error { method loadParents (line 910) | func (m *redisMeta) loadParents(ctx Context, msg proto.Message) error { method prepareLoad (line 923) | func (m *redisMeta) prepareLoad(ctx Context, opt *LoadOption) error { FILE: pkg/meta/redis_csc.go type cachedEntry (line 38) | type cachedEntry struct method isMark (line 43) | func (e *cachedEntry) isMark() bool { type redisCache (line 49) | type redisCache struct method init (line 73) | func (c *redisCache) init(cli redis.UniversalClient) error { method parse (line 105) | func (c *redisCache) parse(key string) int { method entryName (line 115) | func (c *redisCache) entryName(parent Ino, name string) string { method HandlePushNotification (line 119) | func (c *redisCache) HandlePushNotification(ctx context.Context, handl... method DialHook (line 152) | func (c *redisCache) DialHook(next redis.DialHook) redis.DialHook { re... method beforeProcess (line 156) | func (c *redisCache) beforeProcess(cmd redis.Cmder, skip bool) bool { method afterProcess (line 189) | func (c *redisCache) afterProcess(cmd redis.Cmder) { method ProcessHook (line 241) | func (c *redisCache) ProcessHook(next redis.ProcessHook) redis.Process... method ProcessPipelineHook (line 252) | func (c *redisCache) ProcessPipelineHook(next redis.ProcessPipelineHoo... method close (line 265) | func (c *redisCache) close() { method onInvalidateConnect (line 280) | func (c *redisCache) onInvalidateConnect(ctx context.Context, cn *redi... function newRedisCache (line 61) | func newRedisCache(prefix string, cap int, expiry time.Duration, preload... constant keyTypOther (line 100) | keyTypOther = iota constant keyTypInode (line 101) | keyTypInode constant keyTypEntry (line 102) | keyTypEntry type invalidConnKey (line 278) | type invalidConnKey struct method preloadCache (line 296) | func (m *redisMeta) preloadCache() { function bytesToString (line 325) | func bytesToString(b []byte) string { FILE: pkg/meta/redis_csc_test.go function mockRedisCSCMeta (line 13) | func mockRedisCSCMeta(t *testing.T) *redisMeta { function TestRedisCache (line 20) | func TestRedisCache(t *testing.T) { FILE: pkg/meta/redis_lock.go method Flock (line 32) | func (r *redisMeta) Flock(ctx Context, inode Ino, owner uint64, ltype ui... method Getlk (line 98) | func (r *redisMeta) Getlk(ctx Context, inode Ino, owner uint64, ltype *u... method Setlk (line 136) | func (r *redisMeta) Setlk(ctx Context, inode Ino, owner uint64, block bo... method ListLocks (line 213) | func (r *redisMeta) ListLocks(ctx context.Context, inode Ino) ([]PLockIt... FILE: pkg/meta/slice.go type slice (line 21) | type slice struct method read (line 46) | func (s *slice) read(buf []byte) { method cut (line 55) | func (s *slice) cut(pos uint32) (left, right *slice) { method visit (line 81) | func (s *slice) visit(f func(*slice)) { function newSlice (line 31) | func newSlice(pos uint32, id uint64, cleng, off, len uint32) *slice { constant sliceBytes (line 91) | sliceBytes = 24 function marshalSlice (line 93) | func marshalSlice(pos uint32, id uint64, size, off, len uint32) []byte { function readSlices (line 103) | func readSlices(vals []string) []*slice { function readSliceBuf (line 118) | func readSliceBuf(buf []byte) []*slice { function buildSlice (line 134) | func buildSlice(ss []*slice) []Slice { function compactChunk (line 157) | func compactChunk(ss []*slice) (uint32, uint32, []Slice) { function skipSome (line 183) | func skipSome(chunk []*slice) int { FILE: pkg/meta/sql.go constant MaxFieldsCountOfTable (line 53) | MaxFieldsCountOfTable = 18 type setting (line 55) | type setting struct type counter (line 60) | type counter struct type edge (line 65) | type edge struct type node (line 73) | type node struct method setAtime (line 94) | func (n *node) setAtime(ns int64) { method getMtime (line 99) | func (n *node) getMtime() int64 { method setMtime (line 103) | func (n *node) setMtime(ns int64) { method setCtime (line 108) | func (n *node) setCtime(ns int64) { function getACLIdColName (line 113) | func getACLIdColName(aclType uint8) string { type acl (line 123) | type acl struct method toRule (line 145) | func (a *acl) toRule() *aclAPI.Rule { function newSQLAcl (line 133) | func newSQLAcl(r *aclAPI.Rule) *acl { type delegationToken (line 156) | type delegationToken struct type namedNode (line 161) | type namedNode struct type chunk (line 166) | type chunk struct type sliceRef (line 173) | type sliceRef struct type delslices (line 179) | type delslices struct type symlink (line 185) | type symlink struct type xattr (line 190) | type xattr struct type flock (line 197) | type flock struct type plock (line 205) | type plock struct type session (line 213) | type session struct type session2 (line 219) | type session2 struct type sustained (line 225) | type sustained struct type delfile (line 231) | type delfile struct type dirStats (line 237) | type dirStats struct type detachedNode (line 244) | type detachedNode struct type dirQuota (line 249) | type dirQuota struct type userGroupQuota (line 257) | type userGroupQuota struct type dbMeta (line 266) | type dbMeta struct method sqlConv (line 347) | func (m *dbMeta) sqlConv(sql string) string { method initStatement (line 351) | func (m *dbMeta) initStatement() { method Shutdown (line 558) | func (m *dbMeta) Shutdown() error { method Name (line 562) | func (m *dbMeta) Name() string { method doDeleteSlice (line 570) | func (m *dbMeta) doDeleteSlice(id uint64, size uint32) error { method syncTable (line 577) | func (m *dbMeta) syncTable(beans ...interface{}) error { method syncAllTables (line 585) | func (m *dbMeta) syncAllTables() error { method doInit (line 619) | func (m *dbMeta) doInit(format *Format, force bool) error { method cacheACLs (line 714) | func (m *dbMeta) cacheACLs(ctx Context) error { method Reset (line 727) | func (m *dbMeta) Reset() error { method doLoad (line 737) | func (m *dbMeta) doLoad() (data []byte, err error) { method doNewSession (line 754) | func (m *dbMeta) doNewSession(sinfo []byte, update bool) error { method getSession (line 803) | func (m *dbMeta) getSession(row interface{}, detail bool) (*Session, e... method GetSession (line 863) | func (m *dbMeta) GetSession(sid uint64, detail bool) (s *Session, err ... method ListSessions (line 892) | func (m *dbMeta) ListSessions() ([]*Session, error) { method getCounter (line 934) | func (m *dbMeta) getCounter(name string) (v int64, err error) { method incrCounter (line 946) | func (m *dbMeta) incrCounter(name string, value int64) (v int64, err e... method incrSessionCounter (line 954) | func (m *dbMeta) incrSessionCounter(s *xorm.Session, name string, valu... method setIfSmall (line 972) | func (m *dbMeta) setIfSmall(name string, value, diff int64) (bool, err... method shouldRetry (line 1015) | func (m *dbMeta) shouldRetry(err error) bool { method txn (line 1047) | func (m *dbMeta) txn(f func(s *xorm.Session) error, inodes ...Ino) err... method roTxn (line 1086) | func (m *dbMeta) roTxn(ctx context.Context, f func(s *xorm.Session) er... method simpleTxn (line 1147) | func (m *dbMeta) simpleTxn(ctx context.Context, f func(s *xorm.Session... method parseAttr (line 1183) | func (m *dbMeta) parseAttr(n *node, attr *Attr) { method parseNode (line 1207) | func (m *dbMeta) parseNode(attr *Attr, n *node) { method updateStats (line 1227) | func (m *dbMeta) updateStats(space int64, inodes int64) { method doSyncVolumeStat (line 1232) | func (m *dbMeta) doSyncVolumeStat(ctx Context) error { method doFlushStats (line 1280) | func (m *dbMeta) doFlushStats() { method doLookup (line 1303) | func (m *dbMeta) doLookup(ctx Context, parent Ino, name string, inode ... method doGetAttr (line 1328) | func (m *dbMeta) doGetAttr(ctx Context, inode Ino, attr *Attr) syscall... method doSetAttr (line 1342) | func (m *dbMeta) doSetAttr(ctx Context, inode Ino, set uint16, sugidcl... method appendSlice (line 1394) | func (m *dbMeta) appendSlice(s *xorm.Session, inode Ino, indx uint32, ... method upsertSlice (line 1411) | func (m *dbMeta) upsertSlice(s *xorm.Session, inode Ino, indx uint32, ... method doTruncate (line 1436) | func (m *dbMeta) doTruncate(ctx Context, inode Ino, flags uint8, lengt... method doFallocate (line 1506) | func (m *dbMeta) doFallocate(ctx Context, inode Ino, mode uint8, off u... method doReadlink (line 1576) | func (m *dbMeta) doReadlink(ctx Context, inode Ino, noatime bool) (ati... method doMknod (line 1625) | func (m *dbMeta) doMknod(ctx Context, parent Ino, name string, _type u... method doUnlink (line 1790) | func (m *dbMeta) doUnlink(ctx Context, parent Ino, name string, attr *... method doRmdir (line 1963) | func (m *dbMeta) doRmdir(ctx Context, parent Ino, name string, pinode ... method getNodesForUpdate (line 2086) | func (m *dbMeta) getNodesForUpdate(s *xorm.Session, nodes ...*node) er... method getNodes (line 2101) | func (m *dbMeta) getNodes(s *xorm.Session, nodes ...*node) error { method doRename (line 2114) | func (m *dbMeta) doRename(ctx Context, parentSrc Ino, nameSrc string, ... method doLink (line 2473) | func (m *dbMeta) doLink(ctx Context, inode, parent Ino, name string, a... method doReaddir (line 2557) | func (m *dbMeta) doReaddir(ctx Context, inode Ino, plus uint8, entries... method doBatchUnlink (line 2593) | func (m *dbMeta) doBatchUnlink(ctx Context, parent Ino, entries []*Ent... method doCleanStaleSession (line 2934) | func (m *dbMeta) doCleanStaleSession(sid uint64) error { method doFindStaleSessions (line 2986) | func (m *dbMeta) doFindStaleSessions(limit int) ([]uint64, error) { method doRefreshSession (line 3027) | func (m *dbMeta) doRefreshSession() error { method doDeleteSustainedInode (line 3038) | func (m *dbMeta) doDeleteSustainedInode(sid uint64, inode Ino) error { method doRead (line 3070) | func (m *dbMeta) doRead(ctx Context, inode Ino, indx uint32) ([]*slice... method doList (line 3081) | func (m *dbMeta) doList(ctx Context, inode Ino) ([]*slice, syscall.Err... method doWrite (line 3099) | func (m *dbMeta) doWrite(ctx Context, inode Ino, indx uint32, off uint... method CopyFileRange (line 3144) | func (m *dbMeta) CopyFileRange(ctx Context, fin Ino, offIn uint64, fou... method getParents (line 3279) | func (m *dbMeta) getParents(s *xorm.Session, inode, parent Ino) []Ino { method doGetParents (line 3299) | func (m *dbMeta) doGetParents(ctx Context, inode Ino) map[Ino]int { method doUpdateDirStat (line 3315) | func (m *dbMeta) doUpdateDirStat(ctx Context, batch map[Ino]dirStat) e... method doSyncDirStat (line 3359) | func (m *dbMeta) doSyncDirStat(ctx Context, ino Ino) (*dirStat, syscal... method doGetDirStat (line 3385) | func (m *dbMeta) doGetDirStat(ctx Context, ino Ino, trySync bool) (*di... method doFindDeletedFiles (line 3426) | func (m *dbMeta) doFindDeletedFiles(ts int64, limit int) (map[Ino]uint... method doCleanupSlices (line 3442) | func (m *dbMeta) doCleanupSlices(ctx Context, count *uint64) error { method deleteChunk (line 3462) | func (m *dbMeta) deleteChunk(inode Ino, indx uint32) error { method doDeleteFileData (line 3516) | func (m *dbMeta) doDeleteFileData(inode Ino, length uint64) { method doCleanupDelayedSlices (line 3535) | func (m *dbMeta) doCleanupDelayedSlices(ctx Context, edge int64) (int,... method doCompactChunk (line 3595) | func (m *dbMeta) doCompactChunk(inode Ino, indx uint32, origin []byte,... method scanAllChunks (line 3680) | func (m *dbMeta) scanAllChunks(ctx Context, ch chan<- cchunk, bar *uti... method ListSlices (line 3693) | func (m *dbMeta) ListSlices(ctx Context, slices map[Ino][]Slice, scanP... method scanTrashSlices (line 3752) | func (m *dbMeta) scanTrashSlices(ctx Context, scan trashSliceScan) err... method scanPendingSlices (line 3819) | func (m *dbMeta) scanPendingSlices(ctx Context, scan pendingSliceScan)... method scanPendingFiles (line 3849) | func (m *dbMeta) scanPendingFiles(ctx Context, scan pendingFileScan) e... method doRepair (line 3875) | func (m *dbMeta) doRepair(ctx Context, inode Ino, attr *Attr) syscall.... method GetXattr (line 3919) | func (m *dbMeta) GetXattr(ctx Context, inode Ino, name string, vbuff *... method ListXattr (line 3936) | func (m *dbMeta) ListXattr(ctx Context, inode Ino, names *[]byte) sysc... method doSetXattr (line 3965) | func (m *dbMeta) doSetXattr(ctx Context, inode Ino, name string, value... method doRemoveXattr (line 3997) | func (m *dbMeta) doRemoveXattr(ctx Context, inode Ino, name string) sy... method doGetQuota (line 4010) | func (m *dbMeta) doGetQuota(ctx Context, qtype uint32, key uint64) (*Q... method doSetQuota (line 4072) | func (m *dbMeta) doSetQuota(ctx Context, qtype uint32, key uint64, quo... method doDelQuota (line 4111) | func (m *dbMeta) doDelQuota(ctx Context, qtype uint32, key uint64) err... method doLoadQuotas (line 4129) | func (m *dbMeta) doLoadQuotas(ctx Context) (map[uint64]*Quota, map[uin... method doFlushQuotas (line 4181) | func (m *dbMeta) doFlushQuotas(ctx Context, quotas []*iQuota) error { method dumpEntry (line 4220) | func (m *dbMeta) dumpEntry(s *xorm.Session, inode Ino, typ uint8, e *D... method dumpEntryFast (line 4315) | func (m *dbMeta) dumpEntryFast(inode Ino, typ uint8) *DumpedEntry { method dumpDir (line 4379) | func (m *dbMeta) dumpDir(s *xorm.Session, inode Ino, tree *DumpedEntry... method dumpDirFast (line 4473) | func (m *dbMeta) dumpDirFast(inode Ino, tree *DumpedEntry, bw *bufio.W... method makeSnap (line 4507) | func (m *dbMeta) makeSnap(ses *xorm.Session, bar *utils.Bar) error { method DumpMeta (line 4580) | func (m *dbMeta) DumpMeta(w io.Writer, root Ino, threads int, keepSecr... method loadEntry (line 4761) | func (m *dbMeta) loadEntry(e *DumpedEntry, chs []chan interface{}, acl... method getTxnBatchNum (line 4826) | func (m *dbMeta) getTxnBatchNum() int { method checkAddr (line 4839) | func (m *dbMeta) checkAddr() error { method LoadMeta (line 4854) | func (m *dbMeta) LoadMeta(r io.Reader) error { method validateCloneTarget (line 4972) | func (m *dbMeta) validateCloneTarget(ctx Context, s xorm.Interface, in... method doCloneEntry (line 4995) | func (m *dbMeta) doCloneEntry(ctx Context, srcIno Ino, parent Ino, nam... method doBatchClone (line 5118) | func (m *dbMeta) doBatchClone(ctx Context, srcParent Ino, dstParent In... method doFindDetachedNodes (line 5365) | func (m *dbMeta) doFindDetachedNodes(t time.Time) []Ino { method doCleanupDetachedNode (line 5381) | func (m *dbMeta) doCleanupDetachedNode(ctx Context, ino Ino) syscall.E... method doAttachDirNode (line 5406) | func (m *dbMeta) doAttachDirNode(ctx Context, parent Ino, inode Ino, n... method doTouchAtime (line 5444) | func (m *dbMeta) doTouchAtime(ctx Context, inode Ino, attr *Attr, now ... method insertACL (line 5470) | func (m *dbMeta) insertACL(s *xorm.Session, rule *aclAPI.Rule) (uint32... method tryLoadMissACLs (line 5490) | func (m *dbMeta) tryLoadMissACLs(s *xorm.Session) error { method getACL (line 5514) | func (m *dbMeta) getACL(s *xorm.Session, id uint32) (*aclAPI.Rule, err... method doSetFacl (line 5534) | func (m *dbMeta) doSetFacl(ctx Context, ino Ino, aclType uint8, rule *... method doGetFacl (line 5609) | func (m *dbMeta) doGetFacl(ctx Context, ino Ino, aclType uint8, aclId ... method loadDumpedACLs (line 5636) | func (m *dbMeta) loadDumpedACLs(ctx Context) error { method doStoreToken (line 5661) | func (m *dbMeta) doStoreToken(ctx Context, token []byte) (id uint32, s... method doUpdateToken (line 5674) | func (m *dbMeta) doUpdateToken(ctx Context, id uint32, token []byte) s... method doLoadToken (line 5681) | func (m *dbMeta) doLoadToken(ctx Context, id uint32) (token []byte, st... method doDeleteTokens (line 5697) | func (m *dbMeta) doDeleteTokens(ctx Context, ids []uint32) syscall.Err... method doListTokens (line 5704) | func (m *dbMeta) doListTokens(ctx Context) (tokens map[uint32][]byte, ... method newDirHandler (line 5724) | func (m *dbMeta) newDirHandler(inode Ino, plus bool, entries []*Entry)... method getDirFetcher (line 5738) | func (m *dbMeta) getDirFetcher() dirFetcher { type dbSnap (line 280) | type dbSnap struct function recoveryMysqlPwd (line 288) | func recoveryMysqlPwd(addr string) string { function extractCustomConfig (line 302) | func extractCustomConfig[T string | int](value *url.Values, key string, ... type prefixMapper (line 329) | type prefixMapper struct method Obj2Table (line 334) | func (m prefixMapper) Obj2Table(name string) string { method Table2Obj (line 341) | func (m prefixMapper) Table2Obj(name string) string { function newSQLMeta (line 423) | func newSQLMeta(driver, addr string, conf *Config) (Meta, error) { function mustInsert (line 998) | func mustInsert(s *xorm.Session, beans ...interface{}) error { function dup (line 3674) | func dup(b []byte) []byte { function updateQuotaFields (line 4044) | func updateQuotaFields(quota *Quota, exist bool, maxSpace, maxInodes *in... type checkDupError (line 4959) | type checkDupError function isDuplicateEntryErr (line 4963) | func isDuplicateEntryErr(err error) bool { type dbDirHandler (line 5720) | type dbDirHandler struct FILE: pkg/meta/sql_bak.go method dump (line 42) | func (m *dbMeta) dump(ctx Context, opt *DumpOption, ch chan<- *dumpedRes... method execTxn (line 92) | func (m *dbMeta) execTxn(ctx context.Context, f func(s *xorm.Session) er... function sqlQueryBatch (line 99) | func sqlQueryBatch(ctx Context, opt *DumpOption, maxId uint64, query fun... method dumpNodes (line 117) | func (m *dbMeta) dumpNodes(ctx Context, opt *DumpOption, ch chan<- *dump... method dumpChunks (line 177) | func (m *dbMeta) dumpChunks(ctx Context, opt *DumpOption, ch chan<- *dum... method dumpEdges (line 217) | func (m *dbMeta) dumpEdges(ctx Context, opt *DumpOption, ch chan<- *dump... method dumpSymlinks (line 289) | func (m *dbMeta) dumpSymlinks(ctx Context, opt *DumpOption, ch chan<- *d... method dumpCounters (line 310) | func (m *dbMeta) dumpCounters(ctx Context, opt *DumpOption, ch chan<- *d... method dumpSustained (line 325) | func (m *dbMeta) dumpSustained(ctx Context, opt *DumpOption, ch chan<- *... method dumpDelFiles (line 343) | func (m *dbMeta) dumpDelFiles(ctx Context, opt *DumpOption, ch chan<- *d... method dumpSliceRef (line 363) | func (m *dbMeta) dumpSliceRef(ctx Context, opt *DumpOption, ch chan<- *d... method dumpACL (line 383) | func (m *dbMeta) dumpACL(ctx Context, opt *DumpOption, ch chan<- *dumped... method dumpXattr (line 400) | func (m *dbMeta) dumpXattr(ctx Context, opt *DumpOption, ch chan<- *dump... method dumpQuota (line 424) | func (m *dbMeta) dumpQuota(ctx Context, opt *DumpOption, ch chan<- *dump... method dumpDirStat (line 444) | func (m *dbMeta) dumpDirStat(ctx Context, opt *DumpOption, ch chan<- *du... method load (line 469) | func (m *dbMeta) load(ctx Context, typ int, opt *LoadOption, val proto.M... method loadFormat (line 505) | func (m *dbMeta) loadFormat(ctx Context, msg proto.Message) error { method loadCounters (line 514) | func (m *dbMeta) loadCounters(ctx Context, msg proto.Message) error { method loadNodes (line 522) | func (m *dbMeta) loadNodes(ctx Context, msg proto.Message) error { function genMultiSQL (line 539) | func genMultiSQL(stmt string, num int) string { function insertSliceRefs (line 556) | func insertSliceRefs(m *dbMeta, ss []*sliceRef) error { method loadChunks (line 587) | func (m *dbMeta) loadChunks(ctx Context, msg proto.Message) error { method loadEdges (line 610) | func (m *dbMeta) loadEdges(ctx Context, msg proto.Message) error { method loadSymlinks (line 625) | func (m *dbMeta) loadSymlinks(ctx Context, msg proto.Message) error { method loadSustained (line 634) | func (m *dbMeta) loadSustained(ctx Context, msg proto.Message) error { method loadDelFiles (line 645) | func (m *dbMeta) loadDelFiles(ctx Context, msg proto.Message) error { method upsertSliceRef (line 654) | func (m *dbMeta) upsertSliceRef(s *xorm.Session, id uint64, size uint32,... method loadSliceRefs (line 674) | func (m *dbMeta) loadSliceRefs(ctx Context, msg proto.Message) error { method loadAcl (line 697) | func (m *dbMeta) loadAcl(ctx Context, msg proto.Message) error { method loadXattrs (line 710) | func (m *dbMeta) loadXattrs(ctx Context, msg proto.Message) error { method loadQuota (line 719) | func (m *dbMeta) loadQuota(ctx Context, msg proto.Message) error { method loadDirStats (line 734) | func (m *dbMeta) loadDirStats(ctx Context, msg proto.Message) error { method insertRows (line 748) | func (m *dbMeta) insertRows(beans []interface{}) error { method prepareLoad (line 768) | func (m *dbMeta) prepareLoad(ctx Context, opt *LoadOption) error { FILE: pkg/meta/sql_lock.go method Flock (line 31) | func (m *dbMeta) Flock(ctx Context, inode Ino, owner_ uint64, ltype uint... method Getlk (line 107) | func (m *dbMeta) Getlk(ctx Context, inode Ino, owner_ uint64, ltype *uin... method Setlk (line 158) | func (m *dbMeta) Setlk(ctx Context, inode Ino, owner_ uint64, block bool... method ListLocks (line 251) | func (r *dbMeta) ListLocks(ctx context.Context, inode Ino) ([]PLockItem,... FILE: pkg/meta/sql_mysql.go function isMySQLDuplicateEntryErr (line 26) | func isMySQLDuplicateEntryErr(err error) bool { function setMySQLTransactionIsolation (line 33) | func setMySQLTransactionIsolation(dns string) (string, error) { function init (line 45) | func init() { FILE: pkg/meta/sql_pg.go function isPGDuplicateEntryErr (line 27) | func isPGDuplicateEntryErr(err error) bool { function init (line 34) | func init() { FILE: pkg/meta/sql_sqlite.go function isSQLiteDuplicateEntryErr (line 26) | func isSQLiteDuplicateEntryErr(err error) bool { function init (line 33) | func init() { FILE: pkg/meta/sql_test.go function TestSQLiteClient (line 28) | func TestSQLiteClient(t *testing.T) { function TestMySQLClient (line 36) | func TestMySQLClient(t *testing.T) { //skip mutate function TestPostgreSQLClient (line 44) | func TestPostgreSQLClient(t *testing.T) { //skip mutate function TestPostgreSQLClientWithSearchPath (line 55) | func TestPostgreSQLClientWithSearchPath(t *testing.T) { //skip mutate function TestRecoveryMysqlPwd (line 62) | func TestRecoveryMysqlPwd(t *testing.T) { //skip mutate function TestGetCustomConfig (line 126) | func TestGetCustomConfig(t *testing.T) { FILE: pkg/meta/status.go type Statistic (line 29) | type Statistic struct type Sections (line 44) | type Sections struct function Status (line 51) | func Status(ctx context.Context, m Meta, trash bool, sections *Sections)... FILE: pkg/meta/tkv.go type kvtxn (line 45) | type kvtxn interface type tkvClient (line 57) | type tkvClient interface type kvTxn (line 69) | type kvTxn struct method deleteKeys (line 74) | func (tx *kvTxn) deleteKeys(prefix []byte) { type kvMeta (line 81) | type kvMeta struct method Shutdown (line 115) | func (m *kvMeta) Shutdown() error { method Name (line 119) | func (m *kvMeta) Name() string { method doDeleteSlice (line 123) | func (m *kvMeta) doDeleteSlice(id uint64, size uint32) error { method keyLen (line 127) | func (m *kvMeta) keyLen(args ...interface{}) int { method fmtKey (line 148) | func (m *kvMeta) fmtKey(args ...interface{}) []byte { method inodeKey (line 203) | func (m *kvMeta) inodeKey(inode Ino) []byte { method entryKey (line 207) | func (m *kvMeta) entryKey(parent Ino, name string) []byte { method parentKey (line 211) | func (m *kvMeta) parentKey(inode, parent Ino) []byte { method chunkKey (line 215) | func (m *kvMeta) chunkKey(inode Ino, indx uint32) []byte { method sliceKey (line 219) | func (m *kvMeta) sliceKey(id uint64, size uint32) []byte { method delSliceKey (line 223) | func (m *kvMeta) delSliceKey(ts int64, id uint64) []byte { method symKey (line 227) | func (m *kvMeta) symKey(inode Ino) []byte { method xattrKey (line 231) | func (m *kvMeta) xattrKey(inode Ino, name string) []byte { method flockKey (line 235) | func (m *kvMeta) flockKey(inode Ino) []byte { method plockKey (line 239) | func (m *kvMeta) plockKey(inode Ino) []byte { method sessionKey (line 243) | func (m *kvMeta) sessionKey(sid uint64) []byte { method legacySessionKey (line 247) | func (m *kvMeta) legacySessionKey(sid uint64) []byte { method dirStatKey (line 251) | func (m *kvMeta) dirStatKey(inode Ino) []byte { method detachedKey (line 255) | func (m *kvMeta) detachedKey(inode Ino) []byte { method dirQuotaKey (line 259) | func (m *kvMeta) dirQuotaKey(inode Ino) []byte { method userQuotaKey (line 263) | func (m *kvMeta) userQuotaKey(uid uint64) []byte { method groupQuotaKey (line 267) | func (m *kvMeta) groupQuotaKey(gid uint64) []byte { method aclKey (line 271) | func (m *kvMeta) aclKey(id uint32) []byte { method krbTokenKey (line 275) | func (m *kvMeta) krbTokenKey(id uint32) []byte { method parseACLId (line 279) | func (m *kvMeta) parseACLId(key string) uint32 { method parseSid (line 285) | func (m *kvMeta) parseSid(key string) uint64 { method sessionInfoKey (line 293) | func (m *kvMeta) sessionInfoKey(sid uint64) []byte { method sustainedKey (line 297) | func (m *kvMeta) sustainedKey(sid uint64, inode Ino) []byte { method encodeInode (line 301) | func (m *kvMeta) encodeInode(ino Ino, buf []byte) { method decodeInode (line 305) | func (m *kvMeta) decodeInode(buf []byte) Ino { method delfileKey (line 309) | func (m *kvMeta) delfileKey(inode Ino, length uint64) []byte { method counterKey (line 313) | func (m *kvMeta) counterKey(key string) []byte { method packInt64 (line 318) | func (m *kvMeta) packInt64(value int64) []byte { method parseInt64 (line 324) | func (m *kvMeta) parseInt64(buf []byte) int64 { method packEntry (line 351) | func (m *kvMeta) packEntry(_type uint8, inode Ino) []byte { method parseEntry (line 358) | func (m *kvMeta) parseEntry(buf []byte) (uint8, Ino) { method packDirStat (line 363) | func (m *kvMeta) packDirStat(st *dirStat) []byte { method parseDirStat (line 371) | func (m *kvMeta) parseDirStat(buf []byte) *dirStat { method packQuota (line 376) | func (m *kvMeta) packQuota(q *Quota) []byte { method parseQuota (line 385) | func (m *kvMeta) parseQuota(buf []byte) *Quota { method get (line 395) | func (m *kvMeta) get(key []byte) ([]byte, error) { method scanKeys (line 404) | func (m *kvMeta) scanKeys(ctx context.Context, prefix []byte) ([][]byt... method scanValues (line 416) | func (m *kvMeta) scanValues(ctx context.Context, prefix []byte, limit ... method scan (line 435) | func (m *kvMeta) scan(startKey, endKey []byte, limit int, filter func(... method doInit (line 455) | func (m *kvMeta) doInit(format *Format, force bool) error { method cacheACLs (line 541) | func (m *kvMeta) cacheACLs(ctx Context) error { method Reset (line 558) | func (m *kvMeta) Reset() error { method doLoad (line 562) | func (m *kvMeta) doLoad() ([]byte, error) { method updateStats (line 566) | func (m *kvMeta) updateStats(space int64, inodes int64) { method doFlushStats (line 571) | func (m *kvMeta) doFlushStats() { method doNewSession (line 590) | func (m *kvMeta) doNewSession(sinfo []byte, update bool) error { method doRefreshSession (line 600) | func (m *kvMeta) doRefreshSession() error { method doCleanStaleSession (line 612) | func (m *kvMeta) doCleanStaleSession(sid uint64) error { method doFindStaleSessions (line 690) | func (m *kvMeta) doFindStaleSessions(limit int) ([]uint64, error) { method getSession (line 721) | func (m *kvMeta) getSession(sid uint64, detail bool) (*Session, error) { method GetSession (line 775) | func (m *kvMeta) GetSession(sid uint64, detail bool) (*Session, error) { method ListSessions (line 799) | func (m *kvMeta) ListSessions() ([]*Session, error) { method shouldRetry (line 834) | func (m *kvMeta) shouldRetry(err error) bool { method txn (line 838) | func (m *kvMeta) txn(ctx Context, f func(tx *kvTxn) error, inodes ...I... method setValue (line 874) | func (m *kvMeta) setValue(key, value []byte) error { method getCounter (line 881) | func (m *kvMeta) getCounter(name string) (int64, error) { method incrCounter (line 886) | func (m *kvMeta) incrCounter(name string, value int64) (int64, error) { method setIfSmall (line 896) | func (m *kvMeta) setIfSmall(name string, value, diff int64) (bool, err... method deleteKeys (line 913) | func (m *kvMeta) deleteKeys(keys ...[]byte) error { method doLookup (line 925) | func (m *kvMeta) doLookup(ctx Context, parent Ino, name string, inode ... method doGetAttr (line 946) | func (m *kvMeta) doGetAttr(ctx Context, inode Ino, attr *Attr) syscall... method doSetAttr (line 957) | func (m *kvMeta) doSetAttr(ctx Context, inode Ino, set uint16, sugidcl... method doTruncate (line 1000) | func (m *kvMeta) doTruncate(ctx Context, inode Ino, flags uint8, lengt... method doFallocate (line 1058) | func (m *kvMeta) doFallocate(ctx Context, inode Ino, mode uint8, off u... method doReadlink (line 1121) | func (m *kvMeta) doReadlink(ctx Context, inode Ino, noatime bool) (ati... method doMknod (line 1155) | func (m *kvMeta) doMknod(ctx Context, parent Ino, name string, _type u... method doUnlink (line 1295) | func (m *kvMeta) doUnlink(ctx Context, parent Ino, name string, attr *... method doBatchUnlink (line 1438) | func (m *kvMeta) doBatchUnlink(ctx Context, parent Ino, entries []*Ent... method doRmdir (line 1725) | func (m *kvMeta) doRmdir(ctx Context, parent Ino, name string, pinode ... method doRename (line 1828) | func (m *kvMeta) doRename(ctx Context, parentSrc Ino, nameSrc string, ... method doLink (line 2101) | func (m *kvMeta) doLink(ctx Context, inode, parent Ino, name string, a... method fillAttr (line 2163) | func (m *kvMeta) fillAttr(entries []*Entry) (err error) { method doReaddir (line 2189) | func (m *kvMeta) doReaddir(ctx Context, inode Ino, plus uint8, entries... method doDeleteSustainedInode (line 2249) | func (m *kvMeta) doDeleteSustainedInode(sid uint64, inode Ino) error { method doRead (line 2273) | func (m *kvMeta) doRead(ctx Context, inode Ino, indx uint32) ([]*slice... method doList (line 2281) | func (m *kvMeta) doList(ctx Context, inode Ino) ([]*slice, syscall.Err... method doWrite (line 2299) | func (m *kvMeta) doWrite(ctx Context, inode Ino, indx uint32, off uint... method CopyFileRange (line 2344) | func (m *kvMeta) CopyFileRange(ctx Context, fin Ino, offIn uint64, fou... method getParents (line 2479) | func (m *kvMeta) getParents(tx *kvTxn, inode, parent Ino) []Ino { method doGetParents (line 2494) | func (m *kvMeta) doGetParents(ctx Context, inode Ino) map[Ino]int { method doSyncDirStat (line 2510) | func (m *kvMeta) doSyncDirStat(ctx Context, ino Ino) (*dirStat, syscal... method doUpdateDirStat (line 2532) | func (m *kvMeta) doUpdateDirStat(ctx Context, batch map[Ino]dirStat) e... method doGetDirStat (line 2571) | func (m *kvMeta) doGetDirStat(ctx Context, ino Ino, trySync bool) (*di... method doFindDeletedFiles (line 2585) | func (m *kvMeta) doFindDeletedFiles(ts int64, limit int) (map[Ino]uint... method doCleanupSlices (line 2603) | func (m *kvMeta) doCleanupSlices(ctx Context, count *uint64) error { method deleteChunk (line 2635) | func (m *kvMeta) deleteChunk(inode Ino, indx uint32) error { method cleanupZeroRef (line 2662) | func (m *kvMeta) cleanupZeroRef(id uint64, size uint32) { method doDeleteFileData (line 2673) | func (m *kvMeta) doDeleteFileData(inode Ino, length uint64) { method doCleanupDelayedSlices (line 2690) | func (m *kvMeta) doCleanupDelayedSlices(ctx Context, edge int64) (int,... method doCompactChunk (line 2754) | func (m *kvMeta) doCompactChunk(inode Ino, indx uint32, buf []byte, ss... method scanAllChunks (line 2814) | func (m *kvMeta) scanAllChunks(ctx Context, ch chan<- cchunk, bar *uti... method ListSlices (line 2830) | func (m *kvMeta) ListSlices(ctx Context, slices map[Ino][]Slice, scanP... method scanTrashSlices (line 2886) | func (m *kvMeta) scanTrashSlices(ctx Context, scan trashSliceScan) err... method scanPendingSlices (line 2937) | func (m *kvMeta) scanPendingSlices(ctx Context, scan pendingSliceScan)... method scanPendingFiles (line 2965) | func (m *kvMeta) scanPendingFiles(ctx Context, scan pendingFileScan) e... method doRepair (line 2993) | func (m *kvMeta) doRepair(ctx Context, inode Ino, attr *Attr) syscall.... method GetXattr (line 3009) | func (m *kvMeta) GetXattr(ctx Context, inode Ino, name string, vbuff *... method ListXattr (line 3023) | func (m *kvMeta) ListXattr(ctx Context, inode Ino, names *[]byte) sysc... method doSetXattr (line 3050) | func (m *kvMeta) doSetXattr(ctx Context, inode Ino, name string, value... method doRemoveXattr (line 3074) | func (m *kvMeta) doRemoveXattr(ctx Context, inode Ino, name string) sy... method getQuotaKey (line 3086) | func (m *kvMeta) getQuotaKey(qtype uint32, key uint64) ([]byte, error) { method doGetQuota (line 3099) | func (m *kvMeta) doGetQuota(ctx Context, qtype uint32, key uint64) (*Q... method doSetQuota (line 3119) | func (m *kvMeta) doSetQuota(ctx Context, qtype uint32, key uint64, quo... method doDelQuota (line 3163) | func (m *kvMeta) doDelQuota(ctx Context, qtype uint32, key uint64) err... method doLoadQuotas (line 3190) | func (m *kvMeta) doLoadQuotas(ctx Context) (map[uint64]*Quota, map[uin... method doSyncVolumeStat (line 3227) | func (m *kvMeta) doSyncVolumeStat(ctx Context) error { method doFlushQuotas (line 3280) | func (m *kvMeta) doFlushQuotas(ctx Context, quotas []*iQuota) error { method dumpEntry (line 3318) | func (m *kvMeta) dumpEntry(inode Ino, e *DumpedEntry, showProgress fun... method dumpDir (line 3412) | func (m *kvMeta) dumpDir(ctx Context, inode Ino, tree *DumpedEntry, bw... method dumpDirFast (line 3504) | func (m *kvMeta) dumpDirFast(inode Ino, tree *DumpedEntry, bw *bufio.W... method DumpMeta (line 3540) | func (m *kvMeta) DumpMeta(w io.Writer, root Ino, threads int, keepSecr... method loadEntry (line 3828) | func (m *kvMeta) loadEntry(e *DumpedEntry, kv chan *pair, aclMaxId *ui... method LoadMeta (line 3873) | func (m *kvMeta) LoadMeta(r io.Reader) error { method doCloneEntry (line 3984) | func (m *kvMeta) doCloneEntry(ctx Context, srcIno Ino, parent Ino, nam... method doFindDetachedNodes (line 4090) | func (m *kvMeta) doFindDetachedNodes(t time.Time) []Ino { method doCleanupDetachedNode (line 4105) | func (m *kvMeta) doCleanupDetachedNode(ctx Context, ino Ino) syscall.E... method doBatchClone (line 4124) | func (m *kvMeta) doBatchClone(ctx Context, srcParent Ino, dstParent In... method doAttachDirNode (line 4129) | func (m *kvMeta) doAttachDirNode(ctx Context, parent Ino, inode Ino, n... method doTouchAtime (line 4163) | func (m *kvMeta) doTouchAtime(ctx Context, inode Ino, attr *Attr, now ... method doSetFacl (line 4183) | func (m *kvMeta) doSetFacl(ctx Context, ino Ino, aclType uint8, rule *... method doGetFacl (line 4245) | func (m *kvMeta) doGetFacl(ctx Context, ino Ino, aclType uint8, aclId ... method insertACL (line 4271) | func (m *kvMeta) insertACL(tx *kvTxn, rule *aclAPI.Rule) (uint32, erro... method tryLoadMissACLs (line 4294) | func (m *kvMeta) tryLoadMissACLs(tx *kvTxn) error { method getACL (line 4314) | func (m *kvMeta) getACL(tx *kvTxn, id uint32) (*aclAPI.Rule, error) { method loadDumpedACLs (line 4333) | func (m *kvMeta) loadDumpedACLs(ctx Context) error { method doStoreToken (line 4352) | func (m *kvMeta) doStoreToken(ctx Context, token []byte) (id uint32, s... method doUpdateToken (line 4365) | func (m *kvMeta) doUpdateToken(ctx Context, id uint32, token []byte) s... method doLoadToken (line 4375) | func (m *kvMeta) doLoadToken(ctx Context, id uint32) (token []byte, st... method doDeleteTokens (line 4386) | func (m *kvMeta) doDeleteTokens(ctx Context, ids []uint32) syscall.Err... method doListTokens (line 4395) | func (m *kvMeta) doListTokens(ctx Context) (tokens map[uint32][]byte, ... method newDirHandler (line 4410) | func (m *kvMeta) newDirHandler(inode Ino, plus bool, entries []*Entry)... method getDirFetcher (line 4424) | func (m *kvMeta) getDirFetcher() dirFetcher { function newTkvClient (line 92) | func newTkvClient(driver, addr string) (tkvClient, error) { function newKVMeta (line 100) | func newKVMeta(driver, addr string, conf *Config) (Meta, error) { function packCounter (line 335) | func packCounter(value int64) []byte { function parseCounter (line 341) | func parseCounter(buf []byte) int64 { type pair (line 3823) | type pair struct type kvDirHandler (line 4406) | type kvDirHandler struct FILE: pkg/meta/tkv_badger.go type badgerTxn (line 31) | type badgerTxn struct method get (line 36) | func (tx *badgerTxn) get(key []byte) []byte { method gets (line 51) | func (tx *badgerTxn) gets(keys ...[]byte) [][]byte { method scan (line 59) | func (tx *badgerTxn) scan(begin, end []byte, keysOnly bool, handler fu... method exist (line 96) | func (tx *badgerTxn) exist(prefix []byte) bool { method set (line 106) | func (tx *badgerTxn) set(key, value []byte) { method append (line 112) | func (tx *badgerTxn) append(key []byte, value []byte) { method incrBy (line 117) | func (tx *badgerTxn) incrBy(key []byte, value int64) int64 { method delete (line 127) | func (tx *badgerTxn) delete(key []byte) { type badgerClient (line 133) | type badgerClient struct method name (line 139) | func (c *badgerClient) name() string { method shouldRetry (line 143) | func (c *badgerClient) shouldRetry(err error) bool { method config (line 147) | func (c *badgerClient) config(key string) interface{} { method simpleTxn (line 151) | func (c *badgerClient) simpleTxn(ctx context.Context, f func(*kvTxn) e... method txn (line 155) | func (c *badgerClient) txn(ctx context.Context, f func(*kvTxn) error, ... method scan (line 176) | func (c *badgerClient) scan(prefix []byte, handler func(key []byte, va... method reset (line 198) | func (c *badgerClient) reset(prefix []byte) error { method close (line 205) | func (c *badgerClient) close() error { method gc (line 211) | func (c *badgerClient) gc() {} function newBadgerClient (line 213) | func newBadgerClient(addr string) (tkvClient, error) { function init (line 237) | func init() { FILE: pkg/meta/tkv_bak.go method dump (line 39) | func (m *kvMeta) dump(ctx Context, opt *DumpOption, ch chan<- *dumpedRes... method load (line 69) | func (m *kvMeta) load(ctx Context, typ int, opt *LoadOption, val proto.M... method prepareLoad (line 73) | func (m *kvMeta) prepareLoad(ctx Context, opt *LoadOption) error { function printSums (line 90) | func printSums(sums map[int]*atomic.Uint64) string { method dumpCounters (line 98) | func (m *kvMeta) dumpCounters(ctx Context, opt *DumpOption, ch chan<- *d... function splitInodeRange (line 109) | func splitInodeRange(n byte) [][2]byte { method dumpMix (line 127) | func (m *kvMeta) dumpMix(ctx Context, opt *DumpOption, ch chan<- *dumped... method dumpSustained (line 329) | func (m *kvMeta) dumpSustained(ctx Context, opt *DumpOption, ch chan<- *... method dumpDelFiles (line 357) | func (m *kvMeta) dumpDelFiles(ctx Context, opt *DumpOption, ch chan<- *d... method dumpSliceRef (line 374) | func (m *kvMeta) dumpSliceRef(ctx Context, opt *DumpOption, ch chan<- *d... method dumpACL (line 392) | func (m *kvMeta) dumpACL(ctx Context, opt *DumpOption, ch chan<- *dumped... method dumpQuota (line 408) | func (m *kvMeta) dumpQuota(ctx Context, opt *DumpOption, ch chan<- *dump... method dumpDirStat (line 426) | func (m *kvMeta) dumpDirStat(ctx Context, opt *DumpOption, ch chan<- *du... method insertKVs (line 443) | func (m *kvMeta) insertKVs(ctx Context, pairs []*pair, threads int) error { method loadFormat (line 478) | func (m *kvMeta) loadFormat(ctx Context, msg proto.Message, pairs *[]*pa... method loadCounters (line 482) | func (m *kvMeta) loadCounters(ctx Context, msg proto.Message, pairs *[]*... method loadNodes (line 488) | func (m *kvMeta) loadNodes(ctx Context, msg proto.Message, pairs *[]*pai... method loadChunks (line 495) | func (m *kvMeta) loadChunks(ctx Context, msg proto.Message, pairs *[]*pa... method loadEdges (line 502) | func (m *kvMeta) loadEdges(ctx Context, msg proto.Message, pairs *[]*pai... method loadSymlinks (line 512) | func (m *kvMeta) loadSymlinks(ctx Context, msg proto.Message, pairs *[]*... method loadSustained (line 519) | func (m *kvMeta) loadSustained(ctx Context, msg proto.Message, pairs *[]... method loadDelFiles (line 528) | func (m *kvMeta) loadDelFiles(ctx Context, msg proto.Message, pairs *[]*... method loadSliceRefs (line 535) | func (m *kvMeta) loadSliceRefs(ctx Context, msg proto.Message, pairs *[]... method loadAcl (line 542) | func (m *kvMeta) loadAcl(ctx Context, msg proto.Message, pairs *[]*pair,... method loadXattrs (line 552) | func (m *kvMeta) loadXattrs(ctx Context, msg proto.Message, pairs *[]*pa... method loadQuota (line 559) | func (m *kvMeta) loadQuota(ctx Context, msg proto.Message, pairs *[]*pai... method loadDirStats (line 571) | func (m *kvMeta) loadDirStats(ctx Context, msg proto.Message, pairs *[]*... method loadParents (line 582) | func (m *kvMeta) loadParents(ctx Context, msg proto.Message, pairs *[]*p... method maxTxnBatchNum (line 589) | func (m *kvMeta) maxTxnBatchNum() int { method LoadMetaV2 (line 596) | func (m *kvMeta) LoadMetaV2(ctx Context, r io.Reader, opt *LoadOption) e... FILE: pkg/meta/tkv_etcd.go type etcdTxn (line 37) | type etcdTxn struct method get (line 44) | func (tx *etcdTxn) get(key []byte) []byte { method gets (line 71) | func (tx *etcdTxn) gets(keys ...[]byte) [][]byte { method scan (line 110) | func (tx *etcdTxn) scan(begin, end []byte, keysOnly bool, handler func... method exist (line 127) | func (tx *etcdTxn) exist(prefix []byte) bool { method set (line 135) | func (tx *etcdTxn) set(key, value []byte) { method append (line 147) | func (tx *etcdTxn) append(key []byte, value []byte) { method incrBy (line 152) | func (tx *etcdTxn) incrBy(key []byte, value int64) int64 { method delete (line 162) | func (tx *etcdTxn) delete(key []byte) { method commmit (line 166) | func (tx *etcdTxn) commmit() error { type etcdClient (line 195) | type etcdClient struct method name (line 200) | func (c *etcdClient) name() string { method shouldRetry (line 204) | func (c *etcdClient) shouldRetry(err error) bool { method config (line 208) | func (c *etcdClient) config(key string) interface{} { method simpleTxn (line 212) | func (c *etcdClient) simpleTxn(ctx context.Context, f func(*kvTxn) err... method txn (line 216) | func (c *etcdClient) txn(ctx context.Context, f func(*kvTxn) error, re... method scan (line 245) | func (c *etcdClient) scan(prefix []byte, handler func(key []byte, valu... method reset (line 281) | func (c *etcdClient) reset(prefix []byte) error { method close (line 286) | func (c *etcdClient) close() error { method gc (line 290) | func (c *etcdClient) gc() {} function buildTlsConfig (line 292) | func buildTlsConfig(u *url.URL) (*tls.Config, error) { function newEtcdClient (line 306) | func newEtcdClient(addr string) (tkvClient, error) { function init (line 341) | func init() { FILE: pkg/meta/tkv_fdb.go function init (line 30) | func init() { type fdbTxn (line 35) | type fdbTxn struct method get (line 138) | func (tx *fdbTxn) get(key []byte) []byte { method gets (line 142) | func (tx *fdbTxn) gets(keys ...[]byte) [][]byte { method scan (line 154) | func (tx *fdbTxn) scan(begin, end []byte, keysOnly bool, handler func(... method exist (line 165) | func (tx *fdbTxn) exist(prefix []byte) bool { method set (line 172) | func (tx *fdbTxn) set(key, value []byte) { method append (line 176) | func (tx *fdbTxn) append(key []byte, value []byte) { method incrBy (line 180) | func (tx *fdbTxn) incrBy(key []byte, value int64) int64 { method delete (line 186) | func (tx *fdbTxn) delete(key []byte) { type fdbClient (line 39) | type fdbClient struct method name (line 60) | func (c *fdbClient) name() string { method config (line 64) | func (c *fdbClient) config(key string) interface{} { method simpleTxn (line 68) | func (c *fdbClient) simpleTxn(ctx context.Context, f func(*kvTxn) erro... method txn (line 72) | func (c *fdbClient) txn(ctx context.Context, f func(*kvTxn) error, ret... method scan (line 80) | func (c *fdbClient) scan(prefix []byte, handler func(key, value []byte... method reset (line 117) | func (c *fdbClient) reset(prefix []byte) error { method close (line 128) | func (c *fdbClient) close() error { method shouldRetry (line 132) | func (c *fdbClient) shouldRetry(err error) bool { method gc (line 136) | func (c *fdbClient) gc() {} function newFdbClient (line 43) | func newFdbClient(addr string) (tkvClient, error) { FILE: pkg/meta/tkv_fdb_test.go function TestFdbClient (line 27) | func TestFdbClient(t *testing.T) { //skip mutate function TestFdb (line 35) | func TestFdb(t *testing.T) { //skip mutate FILE: pkg/meta/tkv_lock.go type lockOwner (line 28) | type lockOwner struct function marshalFlock (line 33) | func marshalFlock(ls map[lockOwner]byte) []byte { function unmarshalFlock (line 43) | func unmarshalFlock(buf []byte) map[lockOwner]byte { method Flock (line 55) | func (m *kvMeta) Flock(ctx Context, inode Ino, owner uint64, ltype uint3... function marshalPlock (line 106) | func marshalPlock(ls map[lockOwner][]byte) []byte { function unmarshalPlock (line 121) | func unmarshalPlock(buf []byte) map[lockOwner][]byte { method Getlk (line 133) | func (m *kvMeta) Getlk(ctx Context, inode Ino, owner uint64, ltype *uint... method Setlk (line 170) | func (m *kvMeta) Setlk(ctx Context, inode Ino, owner uint64, block bool,... method ListLocks (line 229) | func (m *kvMeta) ListLocks(ctx context.Context, inode Ino) ([]PLockItem,... FILE: pkg/meta/tkv_mem.go function init (line 31) | func init() { constant settingPath (line 36) | settingPath = "/tmp/juicefs.memkv.setting.json" function newMockClient (line 38) | func newMockClient(addr string) (tkvClient, error) { type memTxn (line 51) | type memTxn struct method get (line 57) | func (tx *memTxn) get(key []byte) []byte { method gets (line 74) | func (tx *memTxn) gets(keys ...[]byte) [][]byte { method scan (line 82) | func (tx *memTxn) scan(begin, end []byte, keysOnly bool, handler func(... method exist (line 116) | func (tx *memTxn) exist(prefix []byte) bool { method set (line 131) | func (tx *memTxn) set(key, value []byte) { method append (line 135) | func (tx *memTxn) append(key []byte, value []byte) { method incrBy (line 140) | func (tx *memTxn) incrBy(key []byte, value int64) int64 { method delete (line 150) | func (tx *memTxn) delete(key []byte) { function nextKey (line 96) | func nextKey(key []byte) []byte { type kvItem (line 154) | type kvItem struct method Less (line 160) | func (it *kvItem) Less(o btree.Item) bool { type memKV (line 164) | type memKV struct method name (line 170) | func (c *memKV) name() string { method shouldRetry (line 174) | func (c *memKV) shouldRetry(err error) bool { method config (line 178) | func (c *memKV) config(key string) interface{} { method get (line 182) | func (c *memKV) get(key string) *kvItem { method set (line 191) | func (c *memKV) set(key string, value []byte) { method simpleTxn (line 206) | func (c *memKV) simpleTxn(ctx context.Context, f func(*kvTxn) error, r... method txn (line 210) | func (c *memKV) txn(ctx context.Context, f func(*kvTxn) error, retry i... method scan (line 245) | func (c *memKV) scan(prefix []byte, handler func(key []byte, value []b... method reset (line 261) | func (c *memKV) reset(prefix []byte) error { method close (line 277) | func (c *memKV) close() error { method gc (line 281) | func (c *memKV) gc() {} FILE: pkg/meta/tkv_prefix.go type prefixTxn (line 24) | type prefixTxn struct method realKey (line 29) | func (tx *prefixTxn) realKey(key []byte) []byte { method origKey (line 36) | func (tx *prefixTxn) origKey(key []byte) []byte { method get (line 40) | func (tx *prefixTxn) get(key []byte) []byte { method gets (line 44) | func (tx *prefixTxn) gets(keys ...[]byte) [][]byte { method scan (line 52) | func (tx *prefixTxn) scan(begin, end []byte, keysOnly bool, handler fu... method exist (line 58) | func (tx *prefixTxn) exist(prefix []byte) bool { method set (line 62) | func (tx *prefixTxn) set(key, value []byte) { method append (line 66) | func (tx *prefixTxn) append(key []byte, value []byte) { method incrBy (line 70) | func (tx *prefixTxn) incrBy(key []byte, value int64) int64 { method delete (line 74) | func (tx *prefixTxn) delete(key []byte) { type prefixClient (line 78) | type prefixClient struct method simpleTxn (line 83) | func (c *prefixClient) simpleTxn(ctx context.Context, f func(*kvTxn) e... method txn (line 89) | func (c *prefixClient) txn(ctx context.Context, f func(*kvTxn) error, ... method scan (line 95) | func (c *prefixClient) scan(prefix []byte, handler func(key, value []b... method reset (line 104) | func (c *prefixClient) reset(prefix []byte) error { function withPrefix (line 111) | func withPrefix(client tkvClient, prefix []byte) tkvClient { FILE: pkg/meta/tkv_test.go function TestMemKVClient (line 31) | func TestMemKVClient(t *testing.T) { function TestTiKVClient (line 40) | func TestTiKVClient(t *testing.T) { //skip mutate function TestBadgerClient (line 48) | func TestBadgerClient(t *testing.T) { function TestEtcdClient (line 56) | func TestEtcdClient(t *testing.T) { //skip mutate function testTKV (line 67) | func testTKV(t *testing.T, c tkvClient) { function TestBadgerKV (line 265) | func TestBadgerKV(t *testing.T) { function TestEtcd (line 273) | func TestEtcd(t *testing.T) { //skip mutate function TestMemKV (line 284) | func TestMemKV(t *testing.T) { function TestBadgerScanKeysOnlyNilValues (line 290) | func TestBadgerScanKeysOnlyNilValues(t *testing.T) { function TestBadgerDeleteTxnTooBig (line 323) | func TestBadgerDeleteTxnTooBig(t *testing.T) { FILE: pkg/meta/tkv_tikv.go function init (line 44) | func init() { function newTikvClient (line 50) | func newTikvClient(addr string) (tkvClient, error) { type tikvTxn (line 118) | type tikvTxn struct method get (line 122) | func (tx *tikvTxn) get(key []byte) []byte { method gets (line 133) | func (tx *tikvTxn) gets(keys ...[]byte) [][]byte { method scan (line 145) | func (tx *tikvTxn) scan(begin, end []byte, keysOnly bool, handler func... method exist (line 162) | func (tx *tikvTxn) exist(prefix []byte) bool { method set (line 171) | func (tx *tikvTxn) set(key, value []byte) { method append (line 177) | func (tx *tikvTxn) append(key []byte, value []byte) { method incrBy (line 182) | func (tx *tikvTxn) incrBy(key []byte, value int64) int64 { method delete (line 192) | func (tx *tikvTxn) delete(key []byte) { type tikvClient (line 198) | type tikvClient struct method name (line 203) | func (c *tikvClient) name() string { method shouldRetry (line 207) | func (c *tikvClient) shouldRetry(err error) bool { method config (line 211) | func (c *tikvClient) config(key string) interface{} { method simpleTxn (line 223) | func (c *tikvClient) simpleTxn(ctx context.Context, f func(*kvTxn) err... method txn (line 246) | func (c *tikvClient) txn(ctx context.Context, f func(*kvTxn) error, re... method scan (line 277) | func (c *tikvClient) scan(prefix []byte, handler func(key, value []byt... method reset (line 313) | func (c *tikvClient) reset(prefix []byte) error { method close (line 318) | func (c *tikvClient) close() error { method gc (line 322) | func (c *tikvClient) gc() { FILE: pkg/meta/utils.go constant aclCounter (line 40) | aclCounter = "aclMaxId" constant usedSpace (line 41) | usedSpace = "usedSpace" constant totalInodes (line 42) | totalInodes = "totalInodes" constant legacySessions (line 43) | legacySessions = "sessions" constant krbTokenCounter (line 44) | krbTokenCounter = "krbTokenMaxId" constant fallocKeepSize (line 51) | fallocKeepSize = 0x01 constant fallocPunchHole (line 52) | fallocPunchHole = 0x02 constant fallocCollapesRange (line 54) | fallocCollapesRange = 0x08 constant fallocZeroRange (line 55) | fallocZeroRange = 0x10 constant fallocInsertRange (line 56) | fallocInsertRange = 0x20 constant CLONE_MODE_CAN_OVERWRITE (line 60) | CLONE_MODE_CAN_OVERWRITE = 0x01 constant CLONE_MODE_PRESERVE_ATTR (line 61) | CLONE_MODE_PRESERVE_ATTR = 0x02 constant CLONE_MODE_PRESERVE_HARDLINKS (line 62) | CLONE_MODE_PRESERVE_HARDLINKS = 0x08 constant CLONE_DEFAULT_CONCURRENCY (line 65) | CLONE_DEFAULT_CONCURRENCY = 4 constant NoAtime (line 68) | NoAtime = "noatime" constant RelAtime (line 69) | RelAtime = "relatime" constant StrictAtime (line 70) | StrictAtime = "strictatime" constant MODE_MASK_R (line 74) | MODE_MASK_R = 0b100 constant MODE_MASK_W (line 75) | MODE_MASK_W = 0b010 constant MODE_MASK_X (line 76) | MODE_MASK_X = 0b001 type msgCallbacks (line 79) | type msgCallbacks struct type freeID (line 84) | type freeID struct type queryMap (line 91) | type queryMap struct method duration (line 95) | func (qm *queryMap) duration(key, originalKey string, d time.Duration)... method getInt (line 114) | func (qm *queryMap) getInt(key, originalKey string, defaultValue int) ... method pop (line 133) | func (qm *queryMap) pop(key string) string { function errno (line 138) | func errno(err error) syscall.Errno { function accessMode (line 161) | func accessMode(attr *Attr, uid uint32, gids []uint32) uint8 { function align4K (line 177) | func align4K(length uint64) int64 { type plockRecord (line 184) | type plockRecord struct type ownerKey (line 191) | type ownerKey struct type PLockItem (line 196) | type PLockItem struct type FLockItem (line 201) | type FLockItem struct function parseOwnerKey (line 206) | func parseOwnerKey(key string) (*ownerKey, error) { function loadLocks (line 222) | func loadLocks(d []byte) []plockRecord { function dumpLocks (line 231) | func dumpLocks(ls []plockRecord) []byte { function updateLocks (line 242) | func updateLocks(ls []plockRecord, nl plockRecord) []plockRecord { method emptyDir (line 293) | func (m *baseMeta) emptyDir(ctx Context, inode Ino, skipCheckTrash bool,... method emptyEntry (line 347) | func (m *baseMeta) emptyEntry(ctx Context, parent Ino, name string, inod... method Remove (line 364) | func (m *baseMeta) Remove(ctx Context, parent Ino, name string, skipTras... method GetSummary (line 392) | func (m *baseMeta) GetSummary(ctx Context, inode Ino, summary *Summary, ... method getDirSummary (line 412) | func (m *baseMeta) getDirSummary(ctx Context, inode Ino, summary *Summar... method GetTreeSummary (line 496) | func (m *baseMeta) GetTreeSummary(ctx Context, root *TreeSummary, depth,... method getTreeSummary (line 517) | func (m *baseMeta) getTreeSummary(ctx Context, tree *TreeSummary, depth,... method atimeNeedsUpdate (line 609) | func (m *baseMeta) atimeNeedsUpdate(attr *Attr, now time.Time) bool { function relatimeNeedUpdate (line 617) | func relatimeNeedUpdate(attr *Attr, now time.Time) bool { type txMethodKey (line 624) | type txMethodKey struct type txMethod (line 626) | type txMethod method name (line 628) | func (m *txMethod) name(ctx context.Context) string { function callerName (line 635) | func callerName(ctx context.Context) string { FILE: pkg/meta/utils_darwin.go constant ENOATTR (line 9) | ENOATTR = syscall.ENOATTR constant F_UNLCK (line 11) | F_UNLCK = syscall.F_UNLCK constant F_RDLCK (line 12) | F_RDLCK = syscall.F_RDLCK constant F_WRLCK (line 13) | F_WRLCK = syscall.F_WRLCK constant XattrCreateOrReplace (line 17) | XattrCreateOrReplace = 0 constant XattrCreate (line 18) | XattrCreate = sys.XATTR_CREATE constant XattrReplace (line 19) | XattrReplace = sys.XATTR_REPLACE FILE: pkg/meta/utils_linux.go constant ENOATTR (line 9) | ENOATTR = syscall.ENODATA constant F_UNLCK (line 11) | F_UNLCK = syscall.F_UNLCK constant F_RDLCK (line 12) | F_RDLCK = syscall.F_RDLCK constant F_WRLCK (line 13) | F_WRLCK = syscall.F_WRLCK constant XattrCreateOrReplace (line 17) | XattrCreateOrReplace = 0 constant XattrCreate (line 18) | XattrCreate = sys.XATTR_CREATE constant XattrReplace (line 19) | XattrReplace = sys.XATTR_REPLACE FILE: pkg/meta/utils_test.go function TestRelatimeNeedUpdate (line 25) | func TestRelatimeNeedUpdate(t *testing.T) { function TestAtimeNeedsUpdate (line 56) | func TestAtimeNeedsUpdate(t *testing.T) { function Test_getCallerName (line 92) | func Test_getCallerName(t *testing.T) { FILE: pkg/meta/utils_windows.go constant ENOATTR (line 21) | ENOATTR = syscall.ENODATA constant F_UNLCK (line 24) | F_UNLCK = 1 constant F_RDLCK (line 25) | F_RDLCK = 2 constant F_WRLCK (line 26) | F_WRLCK = 3 constant XattrCreateOrReplace (line 30) | XattrCreateOrReplace = 0 constant XattrCreate (line 31) | XattrCreate = 1 constant XattrReplace (line 32) | XattrReplace = 2 FILE: pkg/metric/metrics.go function UpdateMetrics (line 58) | func UpdateMetrics(registerer prometheus.Registerer) { function RegisterToConsul (line 67) | func RegisterToConsul(consulAddr, metricsAddr string, metadata map[strin... FILE: pkg/object/azure.go type wasb (line 43) | type wasb struct method String (line 52) | func (b *wasb) String() string { method Create (line 56) | func (b *wasb) Create(ctx context.Context) error { method Head (line 66) | func (b *wasb) Head(ctx context.Context, key string) (Object, error) { method Get (line 84) | func (b *wasb) Get(ctx context.Context, key string, off, limit int64, ... method Put (line 104) | func (b *wasb) Put(ctx context.Context, key string, data io.Reader, ge... method Copy (line 115) | func (b *wasb) Copy(ctx context.Context, dst, src string) error { method Delete (line 144) | func (b *wasb) Delete(ctx context.Context, key string, getters ...Attr... method List (line 156) | func (b *wasb) List(ctx context.Context, prefix, startAfter, token, de... method SetStorageClass (line 194) | func (b *wasb) SetStorageClass(sc string) error { function str2Tier (line 95) | func str2Tier(tier string) *blob2.AccessTier { function createAzureCredential (line 206) | func createAzureCredential() (azcore.TokenCredential, error) { function autoWasbEndpoint (line 216) | func autoWasbEndpoint(containerName, accountName, scheme string, credent... function autoWasbEndpointWithToken (line 242) | func autoWasbEndpointWithToken(containerName, accountName, scheme string... function newWasb (line 268) | func newWasb(endpoint, accountName, accountKey, token string) (ObjectSto... function init (line 341) | func init() { FILE: pkg/object/b2.go type b2client (line 35) | type b2client struct method String (line 40) | func (c *b2client) String() string { method Create (line 44) | func (c *b2client) Create(ctx context.Context) error { method getFileInfo (line 48) | func (c *b2client) getFileInfo(key string) (*backblaze.File, error) { method Head (line 68) | func (c *b2client) Head(ctx context.Context, key string) (Object, erro... method Get (line 85) | func (c *b2client) Get(ctx context.Context, key string, off, limit int... method Put (line 98) | func (c *b2client) Put(ctx context.Context, key string, data io.Reader... method Copy (line 103) | func (c *b2client) Copy(ctx context.Context, dst, src string) error { method Delete (line 113) | func (c *b2client) Delete(ctx context.Context, key string, getters ...... method List (line 125) | func (c *b2client) List(ctx context.Context, prefix, startAfter, token... function newB2 (line 155) | func newB2(endpoint, keyID, applicationKey, token string) (ObjectStorage... function init (line 189) | func init() { FILE: pkg/object/bos.go type bosclient (line 42) | type bosclient struct method String (line 49) | func (q *bosclient) String() string { method Limits (line 53) | func (q *bosclient) Limits() Limits { method SetStorageClass (line 63) | func (q *bosclient) SetStorageClass(sc string) error { method Create (line 68) | func (q *bosclient) Create(ctx context.Context) error { method Head (line 81) | func (q *bosclient) Head(ctx context.Context, key string) (Object, err... method Get (line 99) | func (q *bosclient) Get(ctx context.Context, key string, off, limit in... method Put (line 127) | func (q *bosclient) Put(ctx context.Context, key string, in io.Reader,... method Copy (line 159) | func (q *bosclient) Copy(ctx context.Context, dst, src string) error { method Delete (line 168) | func (q *bosclient) Delete(ctx context.Context, key string, getters ..... method List (line 176) | func (q *bosclient) List(ctx context.Context, prefix, start, token, de... method CreateMultipartUpload (line 201) | func (q *bosclient) CreateMultipartUpload(ctx context.Context, key str... method UploadPart (line 213) | func (q *bosclient) UploadPart(ctx context.Context, key string, upload... method UploadPartCopy (line 222) | func (q *bosclient) UploadPartCopy(ctx context.Context, key string, up... method AbortUpload (line 232) | func (q *bosclient) AbortUpload(ctx context.Context, key string, uploa... method CompleteUpload (line 236) | func (q *bosclient) CompleteUpload(ctx context.Context, key string, up... method ListUploads (line 249) | func (q *bosclient) ListUploads(ctx context.Context, marker string) ([... function autoBOSEndpoint (line 264) | func autoBOSEndpoint(bucketName, accessKey, secretKey string) (string, e... function newBOS (line 283) | func newBOS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 318) | func init() { FILE: pkg/object/bunny.go type bunnyClient (line 37) | type bunnyClient struct method String (line 44) | func (b *bunnyClient) String() string { method Get (line 49) | func (b *bunnyClient) Get(ctx context.Context, key string, off int64, ... method Put (line 64) | func (b *bunnyClient) Put(ctx context.Context, key string, in io.Reade... method Delete (line 73) | func (b *bunnyClient) Delete(ctx context.Context, key string, getters ... method List (line 81) | func (b *bunnyClient) List(ctx context.Context, prefix, marker, token,... method Head (line 141) | func (b *bunnyClient) Head(ctx context.Context, key string) (Object, e... function normalizedObjectNameWithinZone (line 117) | func normalizedObjectNameWithinZone(o bunny.Object) string { function parseObjectMetadata (line 125) | func parseObjectMetadata(object bunny.Object) Object { function newBunny (line 152) | func newBunny(endpoint, accessKey, password, token string) (ObjectStorag... function init (line 165) | func init() { FILE: pkg/object/ceph.go type ceph (line 38) | type ceph struct method String (line 45) | func (c *ceph) String() string { method Shutdown (line 49) | func (c *ceph) Shutdown() { method Create (line 53) | func (c *ceph) Create(_ context.Context) error { method newContext (line 66) | func (c *ceph) newContext() (*rados.IOContext, error) { method release (line 79) | func (c *ceph) release(ctx *rados.IOContext) { method do (line 87) | func (c *ceph) do(f func(ctx *rados.IOContext) error) (err error) { method Get (line 135) | func (c *ceph) Get(_ context.Context, key string, off, limit int64, ge... method Put (line 152) | func (c *ceph) Put(_ context.Context, key string, in io.Reader, getter... method Delete (line 189) | func (c *ceph) Delete(_ context.Context, key string, getters ...AttrGe... method Head (line 199) | func (c *ceph) Head(_ context.Context, key string) (Object, error) { method ListAll (line 215) | func (c *ceph) ListAll(_ context.Context, prefix, marker string, follo... type cephReader (line 101) | type cephReader struct method Read (line 109) | func (r *cephReader) Read(buf []byte) (n int, err error) { method Close (line 127) | func (r *cephReader) Close() error { function newCeph (line 313) | func newCeph(endpoint, cluster, user, token string) (ObjectStorage, erro... function init (line 357) | func init() { FILE: pkg/object/checksum.go constant checksumAlgr (line 28) | checksumAlgr = "Crc32c" function generateChecksum (line 32) | func generateChecksum(in io.ReadSeeker) string { type checksumReader (line 55) | type checksumReader struct method Read (line 63) | func (c *checksumReader) Read(buf []byte) (n int, err error) { function verifyChecksum (line 72) | func verifyChecksum(in io.ReadCloser, checksum string, contentLength int... function verifyChecksum0 (line 75) | func verifyChecksum0(in io.ReadCloser, checksum string, contentLength in... FILE: pkg/object/checksum_test.go function TestChecksum (line 30) | func TestChecksum(t *testing.T) { function TestChecksumRead (line 46) | func TestChecksumRead(t *testing.T) { FILE: pkg/object/cifs.go type cifsConn (line 39) | type cifsConn struct type cifsStore (line 48) | type cifsStore struct method Chmod (line 70) | func (c *cifsStore) Chmod(path string, mode os.FileMode) error { method Chown (line 77) | func (c *cifsStore) Chown(path string, owner string, group string) err... method Chtimes (line 82) | func (c *cifsStore) Chtimes(path string, mtime time.Time) error { method String (line 88) | func (c *cifsStore) String() string { method getConnection (line 93) | func (c *cifsStore) getConnection(ctx context.Context) (*cifsConn, err... method closeConnection (line 144) | func (c *cifsStore) closeConnection(conn *cifsConn) { method closeConnectionAsync (line 156) | func (c *cifsStore) closeConnectionAsync(conn *cifsConn) { method releaseConnection (line 161) | func (c *cifsStore) releaseConnection(conn *cifsConn, err error) { method withConn (line 180) | func (c *cifsStore) withConn(ctx context.Context, f func(*smb2.Share) ... method Head (line 191) | func (c *cifsStore) Head(ctx context.Context, key string) (oj Object, ... method Get (line 224) | func (c *cifsStore) Get(ctx context.Context, key string, off, limit in... method Put (line 279) | func (c *cifsStore) Put(ctx context.Context, key string, in io.Reader,... method Delete (line 339) | func (c *cifsStore) Delete(ctx context.Context, key string, getters ..... method fileInfo (line 350) | func (c *cifsStore) fileInfo(key string, fi os.FileInfo, isSymlink boo... method List (line 367) | func (c *cifsStore) List(ctx context.Context, prefix, marker, token, d... method Copy (line 457) | func (c *cifsStore) Copy(ctx context.Context, dst, src string) error { type cifsReadCloser (line 212) | type cifsReadCloser struct method Close (line 218) | func (r *cifsReadCloser) Close() error { function parseEndpoint (line 466) | func parseEndpoint(endpoint string) (host, port, share string, err error) { function newCifs (line 497) | func newCifs(endpoint, username, password, _ string) (ObjectStorage, err... function init (line 537) | func init() { FILE: pkg/object/cos.go constant cosChecksumKey (line 41) | cosChecksumKey = "x-cos-meta-" + checksumAlgr constant cosRequestIDKey (line 42) | cosRequestIDKey = "X-Cos-Request-Id" constant cosStorageClassHeader (line 43) | cosStorageClassHeader = "X-Cos-Storage-Class" type COS (line 46) | type COS struct method String (line 52) | func (c *COS) String() string { method Create (line 56) | func (c *COS) Create(ctx context.Context) error { method Limits (line 64) | func (c *COS) Limits() Limits { method Head (line 74) | func (c *COS) Head(ctx context.Context, key string) (Object, error) { method Get (line 104) | func (c *COS) Get(ctx context.Context, key string, off, limit int64, g... method Put (line 129) | func (c *COS) Put(ctx context.Context, key string, in io.Reader, gette... method Copy (line 151) | func (c *COS) Copy(ctx context.Context, dst, src string) error { method Delete (line 161) | func (c *COS) Delete(ctx context.Context, key string, getters ...AttrG... method List (line 170) | func (c *COS) List(ctx context.Context, prefix, start, token, delimite... method ListAll (line 206) | func (c *COS) ListAll(ctx context.Context, prefix, marker string, foll... method CreateMultipartUpload (line 210) | func (c *COS) CreateMultipartUpload(ctx context.Context, key string) (... method UploadPart (line 222) | func (c *COS) UploadPart(ctx context.Context, key string, uploadID str... method UploadPartCopy (line 230) | func (c *COS) UploadPartCopy(ctx context.Context, key string, uploadID... method AbortUpload (line 240) | func (c *COS) AbortUpload(ctx context.Context, key string, uploadID st... method CompleteUpload (line 244) | func (c *COS) CompleteUpload(ctx context.Context, key string, uploadID... method ListUploads (line 253) | func (c *COS) ListUploads(ctx context.Context, marker string) ([]*Pend... method SetStorageClass (line 269) | func (c *COS) SetStorageClass(sc string) error { function autoCOSEndpoint (line 274) | func autoCOSEndpoint(bucketName, accessKey, secretKey, token string) (st... function newCOS (line 298) | func newCOS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 341) | func init() { FILE: pkg/object/dragonfly.go constant AsyncWriteBack (line 43) | AsyncWriteBack = iota constant WriteBack (line 46) | WriteBack constant Ephemeral (line 51) | Ephemeral constant HeaderDragonflyObjectMetaLastModifiedTime (line 56) | HeaderDragonflyObjectMetaLastModifiedTime = "X-Dragonfly-Object-Meta-Las... constant HeaderDragonflyObjectMetaStorageClass (line 59) | HeaderDragonflyObjectMetaStorageClass = "X-Dragonfly-Object-Meta-Storage... constant HeaderDragonflyObjectOperation (line 62) | HeaderDragonflyObjectOperation = "X-Dragonfly-Object-Operation" constant MaxGetObjectMetadatasLimit (line 67) | MaxGetObjectMetadatasLimit = 1000 constant DefaultMaxReplicas (line 70) | DefaultMaxReplicas = 0 constant MaxReplicasLimit (line 73) | MaxReplicasLimit = 100 constant CopyOperation (line 78) | CopyOperation = "copy" constant FilterOSS (line 83) | FilterOSS = "Expires&Signature" constant FilterS3 (line 86) | FilterS3 = "X-Amz-Algorithm&X-Amz-Credential&X-Amz-Date&X-Amz-Expires&X-... constant FilterOBS (line 89) | FilterOBS = "X-Amz-Algorithm&X-Amz-Credential&X-Amz-Date&X-Obs-Date&X-Am... type ObjectMetadatas (line 93) | type ObjectMetadatas struct type ObjectMetadata (line 102) | type ObjectMetadata struct type ObjectStorageMetadata (line 135) | type ObjectStorageMetadata struct type dragonfly (line 147) | type dragonfly struct method String (line 175) | func (d *dragonfly) String() string { method Create (line 180) | func (d *dragonfly) Create(ctx context.Context) error { method Head (line 212) | func (d *dragonfly) Head(ctx context.Context, key string) (Object, err... method Get (line 264) | func (d *dragonfly) Get(ctx context.Context, key string, off, limit in... method Put (line 302) | func (d *dragonfly) Put(ctx context.Context, key string, data io.Reade... method Copy (line 367) | func (d *dragonfly) Copy(ctx context.Context, dst, src string) error { method Delete (line 410) | func (d *dragonfly) Delete(ctx context.Context, key string, getters ..... method List (line 442) | func (d *dragonfly) List(ctx context.Context, prefix, marker, token, d... function newDragonfly (line 513) | func newDragonfly(endpoint, accessKey, secretKey, token string) (ObjectS... function getObjectStorageMetadata (line 578) | func getObjectStorageMetadata(endpoint string) (*ObjectStorageMetadata, ... function init (line 610) | func init() { FILE: pkg/object/encrypt.go type Encryptor (line 41) | type Encryptor interface function ExportRsaPrivateKeyToPem (line 46) | func ExportRsaPrivateKeyToPem(key *rsa.PrivateKey, passphrase string) st... function ParsePrivateKeyFromPem (line 66) | func ParsePrivateKeyFromPem(enc []byte, passphrase []byte) (any, error) { function ParseRsaPrivateKeyFromPath (line 115) | func ParseRsaPrivateKeyFromPath(path, passphrase string) (any, error) { type rsaEncryptor (line 123) | type rsaEncryptor struct method Encrypt (line 132) | func (e *rsaEncryptor) Encrypt(plaintext []byte) ([]byte, error) { method Decrypt (line 136) | func (e *rsaEncryptor) Decrypt(ciphertext []byte) ([]byte, error) { function NewRSAEncryptor (line 128) | func NewRSAEncryptor(privKey *rsa.PrivateKey) Encryptor { type sm2Encryptor (line 140) | type sm2Encryptor struct method Encrypt (line 148) | func (e *sm2Encryptor) Encrypt(plaintext []byte) ([]byte, error) { method Decrypt (line 152) | func (e *sm2Encryptor) Decrypt(ciphertext []byte) ([]byte, error) { function NewSM2Encryptor (line 144) | func NewSM2Encryptor(privKey *sm2.PrivateKey) Encryptor { function NewKeyEncryptor (line 156) | func NewKeyEncryptor(privKey any) Encryptor { type dataEncryptor (line 166) | type dataEncryptor struct method Encrypt (line 206) | func (e *dataEncryptor) Encrypt(plaintext []byte) ([]byte, error) { method Decrypt (line 238) | func (e *dataEncryptor) Decrypt(ciphertext []byte) ([]byte, error) { constant AES256GCM_RSA (line 173) | AES256GCM_RSA = "aes256gcm-rsa" constant CHACHA20_RSA (line 174) | CHACHA20_RSA = "chacha20-rsa" constant SM4GCM (line 175) | SM4GCM = "sm4gcm" function NewDataEncryptor (line 178) | func NewDataEncryptor(keyEncryptor Encryptor, algo string) (Encryptor, e... type encrypted (line 263) | type encrypted struct method String (line 273) | func (e *encrypted) String() string { method Get (line 277) | func (e *encrypted) Get(ctx context.Context, key string, off, limit in... method Put (line 302) | func (e *encrypted) Put(ctx context.Context, key string, in io.Reader,... function NewEncrypted (line 269) | func NewEncrypted(o ObjectStorage, enc Encryptor) ObjectStorage { FILE: pkg/object/encrypt_test.go function TestParsePrivateKey (line 97) | func TestParsePrivateKey(t *testing.T) { function genPrivateKey (line 127) | func genPrivateKey(typ string) any { function TestSM2 (line 148) | func TestSM2(t *testing.T) { function TestRSA (line 158) | func TestRSA(t *testing.T) { function genrsa (line 203) | func genrsa(path string, password string) error { function BenchmarkKeyEncryptionKey (line 225) | func BenchmarkKeyEncryptionKey(b *testing.B) { function TestDataEncryptor (line 246) | func TestDataEncryptor(t *testing.T) { function BenchmarkDataEncryptor (line 271) | func BenchmarkDataEncryptor(b *testing.B) { function TestEncryptedStore (line 308) | func TestEncryptedStore(t *testing.T) { FILE: pkg/object/eos.go type eos (line 36) | type eos struct method String (line 40) | func (s *eos) String() string { method Limits (line 44) | func (s *eos) Limits() Limits { function newEos (line 54) | func newEos(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 97) | func init() { FILE: pkg/object/etcd.go type etcdClient (line 38) | type etcdClient struct method String (line 45) | func (c *etcdClient) String() string { method Get (line 49) | func (c *etcdClient) Get(ctx context.Context, key string, off, limit i... method Put (line 69) | func (c *etcdClient) Put(ctx context.Context, key string, in io.Reader... method Head (line 78) | func (c *etcdClient) Head(ctx context.Context, key string) (Object, er... method Delete (line 97) | func (c *etcdClient) Delete(ctx context.Context, key string, getters .... method List (line 114) | func (c *etcdClient) List(ctx context.Context, prefix, start, token, d... function genNextKey (line 102) | func genNextKey(key string) string { function buildTlsConfig (line 152) | func buildTlsConfig(u *url.URL) (*tls.Config, error) { function newEtcd (line 166) | func newEtcd(addr, user, passwd, token string) (ObjectStorage, error) { function init (line 198) | func init() { FILE: pkg/object/file.go constant dirSuffix (line 36) | dirSuffix = "/" type filestore (line 42) | type filestore struct method Symlink (line 47) | func (d *filestore) Symlink(oldName, newName string) error { method Readlink (line 59) | func (d *filestore) Readlink(name string) (string, error) { method String (line 63) | func (d *filestore) String() string { method path (line 70) | func (d *filestore) path(key string) string { method Head (line 77) | func (d *filestore) Head(ctx context.Context, key string) (Object, err... method Get (line 119) | func (d *filestore) Get(ctx context.Context, key string, off, limit in... method Put (line 146) | func (d *filestore) Put(ctx context.Context, key string, in io.Reader,... method Copy (line 200) | func (d *filestore) Copy(ctx context.Context, dst, src string) error { method Delete (line 209) | func (d *filestore) Delete(ctx context.Context, key string, getters ..... method List (line 279) | func (d *filestore) List(ctx context.Context, prefix, marker, token, d... method Chmod (line 334) | func (d *filestore) Chmod(key string, mode os.FileMode) error { method Chown (line 339) | func (d *filestore) Chown(key string, owner, group string) error { function toFile (line 93) | func toFile(key string, fi fs.FileInfo, isSymlink bool, ownerGetter func... type SectionReaderCloser (line 114) | type SectionReaderCloser struct type mEntry (line 217) | type mEntry struct method Name (line 224) | func (m *mEntry) Name() string { method Info (line 228) | func (m *mEntry) Info() os.FileInfo { method IsDir (line 235) | func (m *mEntry) IsDir() bool { function readDirSorted (line 244) | func readDirSorted(dir string, followLink bool) ([]*mEntry, error) { function newDisk (line 349) | func newDisk(root, accesskey, secretkey, token string) (ObjectStorage, e... function init (line 357) | func init() { FILE: pkg/object/file_darwin.go function getAtime (line 28) | func getAtime(fi os.FileInfo) time.Time { function lchtimes (line 36) | func lchtimes(name string, atime time.Time, mtime time.Time) error { FILE: pkg/object/file_linux.go function getAtime (line 28) | func getAtime(fi os.FileInfo) time.Time { function lchtimes (line 35) | func lchtimes(name string, atime time.Time, mtime time.Time) error { FILE: pkg/object/file_unix.go function getOwnerGroup (line 31) | func getOwnerGroup(info os.FileInfo) (string, string) { method Chtimes (line 44) | func (d *filestore) Chtimes(key string, mtime time.Time) error { FILE: pkg/object/file_unix_test.go function TestLChtimes (line 28) | func TestLChtimes(t *testing.T) { FILE: pkg/object/file_windows.go function getOwnerGroup (line 24) | func getOwnerGroup(info os.FileInfo) (string, string) { function lookupUser (line 28) | func lookupUser(name string) int { function lookupGroup (line 32) | func lookupGroup(name string) int { method Chtimes (line 36) | func (d *filestore) Chtimes(key string, mtime time.Time) error { FILE: pkg/object/filesystem_test.go function testKeysEqual (line 29) | func testKeysEqual(objs []Object, expectedKeys []string) error { function TestDisk2 (line 48) | func TestDisk2(t *testing.T) { function TestSftp2 (line 56) | func TestSftp2(t *testing.T) { //skip mutate function TestCifs2 (line 67) | func TestCifs2(t *testing.T) { //skip mutate function TestHDFS2 (line 79) | func TestHDFS2(t *testing.T) { //skip mutate function TestNFS2 (line 87) | func TestNFS2(t *testing.T) { //skip mutate function testFileSystem (line 98) | func testFileSystem(t *testing.T, s ObjectStorage) { FILE: pkg/object/gluster.go type gluster (line 41) | type gluster struct method String (line 48) | func (g *gluster) String() string { method vol (line 52) | func (g *gluster) vol() *gfapi.Volume { method Head (line 60) | func (g *gluster) Head(ctx context.Context, key string) (Object, error) { method toFile (line 68) | func (g *gluster) toFile(key string, fi fs.FileInfo, isSymlink bool) *... method Get (line 89) | func (g *gluster) Get(ctx context.Context, key string, off, limit int6... method Put (line 114) | func (g *gluster) Put(ctx context.Context, key string, in io.Reader, g... method Delete (line 150) | func (g *gluster) Delete(ctx context.Context, key string, getters ...A... method readDirSorted (line 164) | func (g *gluster) readDirSorted(dirname string, followLink bool) ([]*m... method List (line 203) | func (g *gluster) List(ctx context.Context, prefix, marker, token, del... method Chtimes (line 254) | func (g *gluster) Chtimes(path string, mtime time.Time) error { method Chmod (line 258) | func (g *gluster) Chmod(path string, mode os.FileMode) error { method Chown (line 262) | func (g *gluster) Chown(path string, owner, group string) error { function newGluster (line 266) | func newGluster(endpoint, ak, sk, token string) (ObjectStorage, error) { function init (line 337) | func init() { FILE: pkg/object/gluster_test.go function TestGluster (line 27) | func TestGluster(t *testing.T) { function TestGluster2 (line 36) | func TestGluster2(t *testing.T) { FILE: pkg/object/gs.go type gs (line 41) | type gs struct method String (line 50) | func (g *gs) String() string { method getClient (line 54) | func (g *gs) getClient() *storage.Client { method Create (line 62) | func (g *gs) Create(ctx context.Context) error { method Head (line 99) | func (g *gs) Head(ctx context.Context, key string) (Object, error) { method Get (line 117) | func (g *gs) Get(ctx context.Context, key string, off, limit int64, ge... method Put (line 128) | func (g *gs) Put(ctx context.Context, key string, data io.Reader, gett... method Copy (line 148) | func (g *gs) Copy(ctx context.Context, dst, src string) error { method Delete (line 160) | func (g *gs) Delete(ctx context.Context, key string, getters ...AttrGe... method List (line 167) | func (g *gs) List(ctx context.Context, prefix, start, token, delimiter... method SetStorageClass (line 191) | func (g *gs) SetStorageClass(sc string) error { function newGS (line 196) | func newGS(endpoint, accessKey, secretKey, token string) (ObjectStorage,... function init (line 232) | func init() { FILE: pkg/object/hdfs.go type hdfsclient (line 44) | type hdfsclient struct method String (line 55) | func (h *hdfsclient) String() string { method path (line 59) | func (h *hdfsclient) path(key string) string { method Head (line 63) | func (h *hdfsclient) Head(ctx context.Context, key string) (Object, er... method toFile (line 72) | func (h *hdfsclient) toFile(key string, info os.FileInfo) *file { method Get (line 107) | func (h *hdfsclient) Get(ctx context.Context, key string, off, limit i... method Put (line 128) | func (h *hdfsclient) Put(ctx context.Context, key string, in io.Reader... method Delete (line 202) | func (h *hdfsclient) Delete(ctx context.Context, key string, getters .... method List (line 210) | func (h *hdfsclient) List(ctx context.Context, prefix, marker, token, ... method Chtimes (line 279) | func (h *hdfsclient) Chtimes(key string, mtime time.Time) error { method Chmod (line 285) | func (h *hdfsclient) Chmod(key string, mode os.FileMode) error { method Chown (line 289) | func (h *hdfsclient) Chown(key string, owner, group string) error { function min (line 190) | func min(a, b time.Duration) time.Duration { function IsErrReplicating (line 197) | func IsErrReplicating(err error) bool { function newHDFS (line 299) | func newHDFS(addr, username, sk, token string) (ObjectStorage, error) { function parseHDFSAddr (line 380) | func parseHDFSAddr(addr string, conf hadoopconf.HadoopConf) (rpcAddresse... function init (line 405) | func init() { FILE: pkg/object/hdfs_kerberos.go function getKerberosClient (line 22) | func getKerberosClient() (*krb.Client, error) { FILE: pkg/object/ibmcos.go type ibmcos (line 44) | type ibmcos struct method String (line 50) | func (s *ibmcos) String() string { method Create (line 54) | func (s *ibmcos) Create(ctx context.Context) error { method Limits (line 69) | func (s *ibmcos) Limits() Limits { method Get (line 78) | func (s *ibmcos) Get(ctx context.Context, key string, off, limit int64... method Put (line 102) | func (s *ibmcos) Put(ctx context.Context, key string, in io.Reader, ge... method Copy (line 130) | func (s *ibmcos) Copy(ctx context.Context, dst, src string) error { method Head (line 144) | func (s *ibmcos) Head(ctx context.Context, key string) (Object, error) { method Delete (line 165) | func (s *ibmcos) Delete(ctx context.Context, key string, getters ...At... method List (line 177) | func (s *ibmcos) List(ctx context.Context, prefix, start, token, delim... method ListAll (line 215) | func (s *ibmcos) ListAll(ctx context.Context, prefix, marker string, f... method CreateMultipartUpload (line 219) | func (s *ibmcos) CreateMultipartUpload(ctx context.Context, key string... method UploadPart (line 234) | func (s *ibmcos) UploadPart(ctx context.Context, key string, uploadID ... method UploadPartCopy (line 250) | func (s *ibmcos) UploadPartCopy(ctx context.Context, key string, uploa... method AbortUpload (line 254) | func (s *ibmcos) AbortUpload(ctx context.Context, key string, uploadID... method CompleteUpload (line 263) | func (s *ibmcos) CompleteUpload(ctx context.Context, key string, uploa... method ListUploads (line 280) | func (s *ibmcos) ListUploads(ctx context.Context, marker string) ([]*P... method SetStorageClass (line 301) | func (s *ibmcos) SetStorageClass(sc string) error { function newIBMCOS (line 306) | func newIBMCOS(endpoint, apiKey, serviceInstanceID, token string) (Objec... function init (line 327) | func init() { FILE: pkg/object/interface.go type Object (line 25) | type Object interface type obj (line 34) | type obj struct method Key (line 42) | func (o *obj) Key() string { return o.key } method Size (line 43) | func (o *obj) Size() int64 { return o.size } method Mtime (line 44) | func (o *obj) Mtime() time.Time { return o.mtime } method IsDir (line 45) | func (o *obj) IsDir() bool { return o.isDir } method IsSymlink (line 46) | func (o *obj) IsSymlink() bool { return false } method StorageClass (line 47) | func (o *obj) StorageClass() string { return o.sc } type MultipartUpload (line 49) | type MultipartUpload struct type Part (line 55) | type Part struct type PendingPart (line 61) | type PendingPart struct type Limits (line 67) | type Limits struct type ObjectStorage (line 77) | type ObjectStorage interface type Shutdownable (line 114) | type Shutdownable interface function Shutdown (line 118) | func Shutdown(o ObjectStorage) { FILE: pkg/object/ks3.go constant s3StorageClassHdr (line 43) | s3StorageClassHdr = "X-Amz-Storage-Class" type ks3 (line 45) | type ks3 struct method String (line 51) | func (s *ks3) String() string { method Create (line 55) | func (s *ks3) Create(ctx context.Context) error { method Limits (line 63) | func (s *ks3) Limits() Limits { method Head (line 73) | func (s *ks3) Head(ctx context.Context, key string) (Object, error) { method Get (line 102) | func (s *ks3) Get(ctx context.Context, key string, off, limit int64, g... method Put (line 125) | func (s *ks3) Put(ctx context.Context, key string, in io.Reader, gette... method Copy (line 153) | func (s *ks3) Copy(ctx context.Context, dst, src string) error { method Delete (line 167) | func (s *ks3) Delete(ctx context.Context, key string, getters ...AttrG... method List (line 183) | func (s *ks3) List(ctx context.Context, prefix, start, token, delimite... method ListAll (line 225) | func (s *ks3) ListAll(ctx context.Context, prefix, marker string, foll... method CreateMultipartUpload (line 229) | func (s *ks3) CreateMultipartUpload(ctx context.Context, key string) (... method UploadPart (line 244) | func (s *ks3) UploadPart(ctx context.Context, key string, uploadID str... method UploadPartCopy (line 260) | func (s *ks3) UploadPartCopy(ctx context.Context, key string, uploadID... method AbortUpload (line 275) | func (s *ks3) AbortUpload(ctx context.Context, key string, uploadID st... method CompleteUpload (line 284) | func (s *ks3) CompleteUpload(ctx context.Context, key string, uploadID... method ListUploads (line 301) | func (s *ks3) ListUploads(ctx context.Context, marker string) ([]*Pend... method SetStorageClass (line 322) | func (s *ks3) SetStorageClass(sc string) error { function newKS3 (line 340) | func newKS3(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 386) | func init() { FILE: pkg/object/mem.go type mobj (line 32) | type mobj struct type memStore (line 40) | type memStore struct method String (line 47) | func (m *memStore) String() string { method Head (line 51) | func (m *memStore) Head(ctx context.Context, key string) (Object, erro... method Get (line 78) | func (m *memStore) Get(ctx context.Context, key string, off, limit int... method Put (line 99) | func (m *memStore) Put(ctx context.Context, key string, in io.Reader, ... method Copy (line 118) | func (m *memStore) Copy(ctx context.Context, dst, src string) error { method Delete (line 126) | func (m *memStore) Delete(ctx context.Context, key string, getters ...... method List (line 133) | func (m *memStore) List(ctx context.Context, prefix, marker, token, de... function newMem (line 193) | func newMem(endpoint, accesskey, secretkey, token string) (ObjectStorage... function init (line 199) | func init() { FILE: pkg/object/minio.go type minio (line 36) | type minio struct method String (line 40) | func (m *minio) String() string { method Limits (line 51) | func (m *minio) Limits() Limits { function newMinio (line 61) | func newMinio(endpoint, accessKey, secretKey, token string) (ObjectStora... function init (line 115) | func init() { FILE: pkg/object/nfs.go type nfsStore (line 43) | type nfsStore struct method String (line 86) | func (n *nfsStore) String() string { method path (line 90) | func (n *nfsStore) path(key string) string { method Head (line 97) | func (n *nfsStore) Head(ctx context.Context, key string) (Object, erro... method Get (line 121) | func (n *nfsStore) Get(ctx context.Context, key string, off, limit int... method mkdirAll (line 141) | func (n *nfsStore) mkdirAll(p string) error { method Put (line 165) | func (n *nfsStore) Put(ctx context.Context, key string, in io.Reader, ... method Delete (line 220) | func (n *nfsStore) Delete(ctx context.Context, key string, getters ...... method fileInfo (line 244) | func (n *nfsStore) fileInfo(key string, fi os.FileInfo) Object { method readDirSorted (line 263) | func (n *nfsStore) readDirSorted(ctx context.Context, dir string, foll... method List (line 304) | func (n *nfsStore) List(ctx context.Context, prefix, marker, token, de... method setAttr (line 353) | func (n *nfsStore) setAttr(path string, attrSet func(attr *nfs.Fattr) ... method Chtimes (line 364) | func (n *nfsStore) Chtimes(path string, mtime time.Time) error { method Chmod (line 378) | func (n *nfsStore) Chmod(path string, mode os.FileMode) error { method Chown (line 389) | func (n *nfsStore) Chown(path string, owner, group string) error { method Symlink (line 409) | func (n *nfsStore) Symlink(oldName, newName string) error { method Readlink (line 423) | func (n *nfsStore) Readlink(name string) (string, error) { method ListAll (line 431) | func (n *nfsStore) ListAll(ctx context.Context, prefix, marker string,... method findOwnerGroup (line 435) | func (n *nfsStore) findOwnerGroup(attr *nfs.Fattr) (string, string) { method getOwnerGroup (line 439) | func (n *nfsStore) getOwnerGroup(info os.FileInfo) (string, string) { type nfsEntry (line 54) | type nfsEntry struct method Name (line 61) | func (e *nfsEntry) Name() string { method Size (line 65) | func (e *nfsEntry) Size() int64 { method Info (line 72) | func (e *nfsEntry) Info() (os.FileInfo, error) { method IsDir (line 79) | func (e *nfsEntry) IsDir() bool { function newNFSStore (line 449) | func newNFSStore(addr, username, pass, token string) (ObjectStorage, err... function init (line 485) | func init() { FILE: pkg/object/object_storage.go type MtimeChanger (line 40) | type MtimeChanger interface type SupportSymlink (line 44) | type SupportSymlink interface type File (line 51) | type File interface type onlyWriter (line 58) | type onlyWriter struct type file (line 62) | type file struct method Owner (line 70) | func (f *file) Owner() string { return f.owner } method Group (line 71) | func (f *file) Group() string { return f.group } method Mode (line 72) | func (f *file) Mode() os.FileMode { return f.mode } method IsSymlink (line 73) | func (f *file) IsSymlink() bool { return f.isSymlink } function MarshalObject (line 75) | func MarshalObject(o Object) map[string]interface{} { function UnmarshalObject (line 90) | func UnmarshalObject(m map[string]interface{}) Object { type FileSystem (line 105) | type FileSystem interface type DefaultObjectStorage (line 113) | type DefaultObjectStorage struct method Create (line 115) | func (s DefaultObjectStorage) Create(ctx context.Context) error { method Limits (line 119) | func (s DefaultObjectStorage) Limits() Limits { method Head (line 123) | func (s DefaultObjectStorage) Head(key string) (Object, error) { method Copy (line 127) | func (s DefaultObjectStorage) Copy(ctx context.Context, dst, src strin... method CreateMultipartUpload (line 131) | func (s DefaultObjectStorage) CreateMultipartUpload(ctx context.Contex... method UploadPart (line 135) | func (s DefaultObjectStorage) UploadPart(ctx context.Context, key stri... method UploadPartCopy (line 139) | func (s DefaultObjectStorage) UploadPartCopy(ctx context.Context, key ... method AbortUpload (line 143) | func (s DefaultObjectStorage) AbortUpload(ctx context.Context, key str... method CompleteUpload (line 145) | func (s DefaultObjectStorage) CompleteUpload(ctx context.Context, key ... method ListUploads (line 149) | func (s DefaultObjectStorage) ListUploads(ctx context.Context, marker ... method List (line 153) | func (s DefaultObjectStorage) List(ctx context.Context, prefix, start,... method ListAll (line 157) | func (s DefaultObjectStorage) ListAll(ctx context.Context, prefix, mar... type Creator (line 161) | type Creator function Register (line 165) | func Register(name string, register Creator) { function CreateStorage (line 169) | func CreateStorage(name, endpoint, accessKey, secretKey, token string) (... type listThread (line 186) | type listThread struct method reset (line 196) | func (l *listThread) reset() { function ListAllWithDelimiter (line 203) | func ListAllWithDelimiter(ctx context.Context, store ObjectStorage, pref... function generateListResult (line 306) | func generateListResult(objs []Object, limit int64) ([]Object, bool, str... function decodeKey (line 314) | func decodeKey(value string, typ *string) (string, error) { function TmpFilePath (line 321) | func TmpFilePath(parent, name string) string { FILE: pkg/object/object_storage_test.go function get (line 52) | func get(s ObjectStorage, k string, off, limit int64, getters ...AttrGet... function listAll (line 65) | func listAll(ctx context.Context, s ObjectStorage, prefix, marker string... function setStorageClass (line 79) | func setStorageClass(o ObjectStorage) string { function testStorage (line 110) | func testStorage(t *testing.T, s ObjectStorage) { function TestMem (line 636) | func TestMem(t *testing.T) { function TestDisk (line 641) | func TestDisk(t *testing.T) { function TestQingStor (line 647) | func TestQingStor(t *testing.T) { //skip mutate function TestS3 (line 664) | func TestS3(t *testing.T) { //skip mutate function TestOracleCompileRegexp (line 675) | func TestOracleCompileRegexp(t *testing.T) { function TestOVHCompileRegexp (line 691) | func TestOVHCompileRegexp(t *testing.T) { function TestOSS (line 708) | func TestOSS(t *testing.T) { //skip mutate function TestUFile (line 718) | func TestUFile(t *testing.T) { //skip mutate function TestGS (line 727) | func TestGS(t *testing.T) { //skip mutate function TestQiniu (line 735) | func TestQiniu(t *testing.T) { //skip mutate function TestKS3 (line 747) | func TestKS3(t *testing.T) { //skip mutate function TestCOS (line 756) | func TestCOS(t *testing.T) { //skip mutate function TestAzure (line 766) | func TestAzure(t *testing.T) { //skip mutate function TestB2 (line 776) | func TestB2(t *testing.T) { //skip mutate function TestSpace (line 787) | func TestSpace(t *testing.T) { //skip mutate function TestBOS (line 795) | func TestBOS(t *testing.T) { //skip mutate function TestSftp (line 804) | func TestSftp(t *testing.T) { //skip mutate function TestOBS (line 812) | func TestOBS(t *testing.T) { //skip mutate function TestNFS (line 821) | func TestNFS(t *testing.T) { //skip mutate function TestHDFS (line 832) | func TestHDFS(t *testing.T) { //skip mutate function TestOOS (line 867) | func TestOOS(t *testing.T) { //skip mutate function TestScw (line 876) | func TestScw(t *testing.T) { //skip mutate function TestMinIO (line 884) | func TestMinIO(t *testing.T) { function TestTiKV (line 897) | func TestTiKV(t *testing.T) { //skip mutate function TestRedis (line 908) | func TestRedis(t *testing.T) { function TestSwift (line 924) | func TestSwift(t *testing.T) { //skip mutate function TestWebDAV (line 935) | func TestWebDAV(t *testing.T) { //skip mutate function TestEncrypted (line 943) | func TestEncrypted(t *testing.T) { function TestMarsharl (line 952) | func TestMarsharl(t *testing.T) { function TestSharding (line 985) | func TestSharding(t *testing.T) { function TestSQLite (line 990) | func TestSQLite(t *testing.T) { function TestPG (line 998) | func TestPG(t *testing.T) { //skip mutate function TestPGWithSearchPath (line 1009) | func TestPGWithSearchPath(t *testing.T) { //skip mutate function TestMySQL (line 1016) | func TestMySQL(t *testing.T) { //skip mutate function TestNameString (line 1027) | func TestNameString(t *testing.T) { function TestEtcd (line 1036) | func TestEtcd(t *testing.T) { //skip mutate function TestEOS (line 1052) | func TestEOS(t *testing.T) { //skip mutate function TestWASABI (line 1060) | func TestWASABI(t *testing.T) { //skip mutate function TestIBMCOS (line 1068) | func TestIBMCOS(t *testing.T) { //skip mutate function TestTOS (line 1076) | func TestTOS(t *testing.T) { //skip mutate function TestDragonfly (line 1087) | func TestDragonfly(t *testing.T) { //skip mutate function TestCifs (line 1098) | func TestCifs(t *testing.T) { //skip mutate function TestMain (line 1121) | func TestMain(m *testing.M) { FILE: pkg/object/obs.go constant obsDefaultRegion (line 43) | obsDefaultRegion = "cn-north-1" type obsClient (line 45) | type obsClient struct method String (line 53) | func (s *obsClient) String() string { method Limits (line 57) | func (s *obsClient) Limits() Limits { method Create (line 67) | func (s *obsClient) Create(ctx context.Context) error { method Head (line 86) | func (s *obsClient) Head(ctx context.Context, key string) (Object, err... method Get (line 108) | func (s *obsClient) Get(ctx context.Context, key string, off, limit in... method Put (line 134) | func (s *obsClient) Put(ctx context.Context, key string, in io.Reader,... method Copy (line 183) | func (s *obsClient) Copy(ctx context.Context, dst, src string) error { method Delete (line 194) | func (s *obsClient) Delete(ctx context.Context, key string, getters ..... method List (line 206) | func (s *obsClient) List(ctx context.Context, prefix, start, token, de... method ListAll (line 239) | func (s *obsClient) ListAll(ctx context.Context, prefix, marker string... method CreateMultipartUpload (line 243) | func (s *obsClient) CreateMultipartUpload(ctx context.Context, key str... method UploadPart (line 255) | func (s *obsClient) UploadPart(ctx context.Context, key string, upload... method UploadPartCopy (line 275) | func (s *obsClient) UploadPartCopy(ctx context.Context, key string, up... method AbortUpload (line 292) | func (s *obsClient) AbortUpload(ctx context.Context, key string, uploa... method CompleteUpload (line 300) | func (s *obsClient) CompleteUpload(ctx context.Context, key string, up... method ListUploads (line 312) | func (s *obsClient) ListUploads(ctx context.Context, marker string) ([... method SetStorageClass (line 333) | func (s *obsClient) SetStorageClass(sc string) error { function getStorageClassStr (line 79) | func getStorageClassStr(sc obs.StorageClassType) string { function autoOBSEndpoint (line 338) | func autoOBSEndpoint(bucketName, accessKey, secretKey, token string) (st... function newOBS (line 364) | func newOBS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 426) | func init() { FILE: pkg/object/oos.go type oos (line 36) | type oos struct method String (line 40) | func (s *oos) String() string { method Limits (line 44) | func (s *oos) Limits() Limits { method Create (line 53) | func (s *oos) Create(ctx context.Context) error { method List (line 61) | func (s *oos) List(ctx context.Context, prefix, start, token, delimite... function newOOS (line 72) | func newOOS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 106) | func init() { FILE: pkg/object/oss.go constant ossDefaultRegionID (line 40) | ossDefaultRegionID = "cn-hangzhou" type ossClient (line 42) | type ossClient struct method String (line 48) | func (o *ossClient) String() string { method Limits (line 52) | func (o *ossClient) Limits() Limits { method Create (line 62) | func (o *ossClient) Create(ctx context.Context) error { method Head (line 79) | func (o *ossClient) Head(ctx context.Context, key string) (Object, err... method Get (line 100) | func (o *ossClient) Get(ctx context.Context, key string, off, limit in... method Put (line 133) | func (o *ossClient) Put(ctx context.Context, key string, in io.Reader,... method Copy (line 159) | func (o *ossClient) Copy(ctx context.Context, dst, src string) error { method Delete (line 171) | func (o *ossClient) Delete(ctx context.Context, key string, getters ..... method List (line 190) | func (o *ossClient) List(ctx context.Context, prefix, start, token, de... method ListAll (line 220) | func (o *ossClient) ListAll(ctx context.Context, prefix, marker string... method CreateMultipartUpload (line 224) | func (o *ossClient) CreateMultipartUpload(ctx context.Context, key str... method UploadPart (line 236) | func (o *ossClient) UploadPart(ctx context.Context, key string, upload... method UploadPartCopy (line 250) | func (o *ossClient) UploadPartCopy(ctx context.Context, key string, up... method AbortUpload (line 266) | func (o *ossClient) AbortUpload(ctx context.Context, key string, uploa... method CompleteUpload (line 274) | func (o *ossClient) CompleteUpload(ctx context.Context, key string, up... method ListUploads (line 291) | func (o *ossClient) ListUploads(ctx context.Context, marker string) ([... method SetStorageClass (line 306) | func (o *ossClient) SetStorageClass(sc string) error { function autoOSSEndpoint (line 311) | func autoOSSEndpoint(bucketName string, provider credentials.Credentials... function newOSS (line 339) | func newOSS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 439) | func init() { FILE: pkg/object/prefix.go type withPrefix (line 27) | type withPrefix struct method SetStorageClass (line 37) | func (s *withPrefix) SetStorageClass(sc string) error { method Symlink (line 44) | func (s *withPrefix) Symlink(oldName, newName string) error { method Readlink (line 51) | func (s *withPrefix) Readlink(name string) (string, error) { method String (line 58) | func (p *withPrefix) String() string { method Limits (line 62) | func (p *withPrefix) Limits() Limits { method Create (line 66) | func (p *withPrefix) Create(ctx context.Context) error { method updateKey (line 84) | func (p *withPrefix) updateKey(o Object) Object { method Head (line 103) | func (p *withPrefix) Head(ctx context.Context, key string) (Object, er... method Get (line 111) | func (p *withPrefix) Get(ctx context.Context, key string, off, limit i... method Put (line 118) | func (p *withPrefix) Put(ctx context.Context, key string, in io.Reader... method Copy (line 122) | func (p *withPrefix) Copy(ctx context.Context, dst, src string) error { method Delete (line 126) | func (p *withPrefix) Delete(ctx context.Context, key string, getters .... method List (line 130) | func (p *withPrefix) List(ctx context.Context, prefix, start, token, d... method ListAll (line 141) | func (p *withPrefix) ListAll(ctx context.Context, prefix, marker strin... method Chmod (line 162) | func (p *withPrefix) Chmod(path string, mode os.FileMode) error { method Chown (line 169) | func (p *withPrefix) Chown(path string, owner, group string) error { method Chtimes (line 176) | func (p *withPrefix) Chtimes(key string, mtime time.Time) error { method CreateMultipartUpload (line 183) | func (p *withPrefix) CreateMultipartUpload(ctx context.Context, key st... method UploadPart (line 187) | func (p *withPrefix) UploadPart(ctx context.Context, key string, uploa... method UploadPartCopy (line 191) | func (s *withPrefix) UploadPartCopy(ctx context.Context, key string, u... method AbortUpload (line 195) | func (p *withPrefix) AbortUpload(ctx context.Context, key string, uplo... method CompleteUpload (line 199) | func (p *withPrefix) CompleteUpload(ctx context.Context, key string, u... method ListUploads (line 203) | func (p *withPrefix) ListUploads(ctx context.Context, marker string) (... function WithPrefix (line 33) | func WithPrefix(os ObjectStorage, prefix string) ObjectStorage { type withFile (line 70) | type withFile struct method Key (line 75) | func (f *withFile) Key() string { return f.key } type withObj (line 77) | type withObj struct method Key (line 82) | func (o *withObj) Key() string { return o.key } function IsFileSystem (line 213) | func IsFileSystem(object ObjectStorage) bool { FILE: pkg/object/qingstor.go type qingstor (line 42) | type qingstor struct method String (line 47) | func (q *qingstor) String() string { method Limits (line 51) | func (q *qingstor) Limits() Limits { method Create (line 61) | func (q *qingstor) Create(ctx context.Context) error { method Head (line 69) | func (q *qingstor) Head(ctx context.Context, key string) (Object, erro... method Get (line 85) | func (q *qingstor) Get(ctx context.Context, key string, off, limit int... method Put (line 144) | func (q *qingstor) Put(ctx context.Context, key string, in io.Reader, ... method Copy (line 172) | func (q *qingstor) Copy(ctx context.Context, dst, src string) error { method Delete (line 190) | func (q *qingstor) Delete(ctx context.Context, key string, getters ...... method List (line 199) | func (q *qingstor) List(ctx context.Context, prefix, start, token, del... method ListAll (line 237) | func (q *qingstor) ListAll(ctx context.Context, prefix, marker string,... method CreateMultipartUpload (line 241) | func (q *qingstor) CreateMultipartUpload(ctx context.Context, key stri... method UploadPart (line 253) | func (q *qingstor) UploadPart(ctx context.Context, key string, uploadI... method UploadPartCopy (line 266) | func (q *qingstor) UploadPartCopy(ctx context.Context, key string, upl... method AbortUpload (line 280) | func (q *qingstor) AbortUpload(ctx context.Context, key string, upload... method CompleteUpload (line 287) | func (q *qingstor) CompleteUpload(ctx context.Context, key string, upl... method ListUploads (line 303) | func (q *qingstor) ListUploads(ctx context.Context, marker string) ([]... method SetStorageClass (line 322) | func (q *qingstor) SetStorageClass(sc string) error { function findLen (line 109) | func findLen(in io.Reader) (io.Reader, int64, error) { function newQingStor (line 327) | func newQingStor(endpoint, accessKey, secretKey, token string) (ObjectSt... function init (line 361) | func init() { FILE: pkg/object/qiniu.go type qiniu (line 43) | type qiniu struct method String (line 51) | func (q *qiniu) String() string { method SetStorageClass (line 55) | func (q *qiniu) SetStorageClass(_ string) error { method Limits (line 59) | func (q *qiniu) Limits() Limits { method download (line 63) | func (q *qiniu) download(key string, off, limit int64) (io.ReadCloser,... method Head (line 91) | func (q *qiniu) Head(ctx context.Context, key string) (Object, error) { method Get (line 110) | func (q *qiniu) Get(ctx context.Context, key string, off, limit int64,... method Put (line 117) | func (q *qiniu) Put(ctx context.Context, key string, in io.Reader, get... method Copy (line 129) | func (q *qiniu) Copy(ctx context.Context, dst, src string) error { method CreateMultipartUpload (line 133) | func (q *qiniu) CreateMultipartUpload(ctx context.Context, key string)... method Delete (line 137) | func (q *qiniu) Delete(ctx context.Context, key string, getters ...Att... method List (line 145) | func (q *qiniu) List(ctx context.Context, prefix, startAfter, token, d... function newQiniu (line 183) | func newQiniu(endpoint, accessKey, secretKey, token string) (ObjectStora... function init (line 247) | func init() { FILE: pkg/object/redis.go type redisStore (line 39) | type redisStore struct method String (line 45) | func (r *redisStore) String() string { method Get (line 49) | func (r *redisStore) Get(ctx context.Context, key string, off, limit i... method Put (line 64) | func (r *redisStore) Put(ctx context.Context, key string, in io.Reader... method Delete (line 72) | func (r *redisStore) Delete(ctx context.Context, key string, getters .... method ListAll (line 76) | func (t *redisStore) ListAll(ctx context.Context, prefix, marker strin... method Head (line 163) | func (t *redisStore) Head(ctx context.Context, key string) (Object, er... function newRedis (line 180) | func newRedis(uri, user, passwd, token string) (ObjectStorage, error) { function init (line 257) | func init() { FILE: pkg/object/response_attrs.go constant DefaultStorageClass (line 19) | DefaultStorageClass = "STANDARD" type SupportStorageClass (line 21) | type SupportStorageClass interface type ResponseAttrs (line 26) | type ResponseAttrs struct method SetRequestID (line 33) | func (r *ResponseAttrs) SetRequestID(id string) *ResponseAttrs { method SetStorageClass (line 40) | func (r *ResponseAttrs) SetStorageClass(sc string) *ResponseAttrs { method GetRequestSize (line 47) | func (r *ResponseAttrs) GetRequestSize() int64 { type AttrGetter (line 54) | type AttrGetter function WithRequestID (line 56) | func WithRequestID(id *string) AttrGetter { function WithStorageClass (line 62) | func WithStorageClass(sc *string) AttrGetter { function WithRequestSize (line 68) | func WithRequestSize(size *int64) AttrGetter { function ApplyGetters (line 74) | func ApplyGetters(getters ...AttrGetter) ResponseAttrs { FILE: pkg/object/response_attrs_test.go constant reqIDExample (line 25) | reqIDExample = "c30c0107cd3a073f6607cd3a-ac103aa8-1rqU4w-PuO-cs-tos-fron... function apiCall (line 27) | func apiCall(getters ...AttrGetter) { function Test_api_call (line 34) | func Test_api_call(t *testing.T) { FILE: pkg/object/restful.go function splitIPsByVersion (line 39) | func splitIPsByVersion(ips []net.IP) ([]net.IP, []net.IP) { function dialParallel (line 56) | func dialParallel(ctx context.Context, dialer *net.Dialer, network strin... function dialRandom (line 128) | func dialRandom(ctx context.Context, dialer *net.Dialer, network string,... function init (line 151) | func init() { function GetHttpClient (line 187) | func GetHttpClient() *http.Client { function cleanup (line 191) | func cleanup(response *http.Response) { type RestfulStorage (line 198) | type RestfulStorage struct method String (line 207) | func (s *RestfulStorage) String() string { method request (line 213) | func (s *RestfulStorage) request(ctx context.Context, method, key stri... method Head (line 242) | func (s *RestfulStorage) Head(ctx context.Context, key string) (Object... method Get (line 291) | func (s *RestfulStorage) Get(ctx context.Context, key string, off, lim... method Put (line 310) | func (u *RestfulStorage) Put(ctx context.Context, key string, body io.... method Copy (line 322) | func (s *RestfulStorage) Copy(ctx context.Context, dst, src string) er... method Delete (line 335) | func (s *RestfulStorage) Delete(ctx context.Context, key string, gette... method List (line 347) | func (s *RestfulStorage) List(ctx context.Context, prefix, marker, tok... function parseError (line 234) | func parseError(resp *http.Response) error { function getRange (line 269) | func getRange(off, limit int64) string { function checkGetStatus (line 280) | func checkGetStatus(statusCode int, partial bool) error { FILE: pkg/object/restful_test.go function startTCPListener (line 28) | func startTCPListener(t *testing.T, addr string) net.Listener { function getPort (line 46) | func getPort(t *testing.T, ln net.Listener) string { function TestDialParallel_OnlyPrimaries (line 55) | func TestDialParallel_OnlyPrimaries(t *testing.T) { function TestDialParallel_OnlyFallbacks (line 69) | func TestDialParallel_OnlyFallbacks(t *testing.T) { function TestDialParallel_PrimaryFailsFast_FallbackSucceeds (line 84) | func TestDialParallel_PrimaryFailsFast_FallbackSucceeds(t *testing.T) { function TestDialParallel_BothFail (line 102) | func TestDialParallel_BothFail(t *testing.T) { function TestSplitIPsByVersion (line 113) | func TestSplitIPsByVersion(t *testing.T) { FILE: pkg/object/s3.go constant awsDefaultRegion (line 47) | awsDefaultRegion = "us-east-1" constant s3RequestIDKey (line 48) | s3RequestIDKey = "X-Amz-Request-Id" type s3client (line 50) | type s3client struct method String (line 58) | func (s *s3client) String() string { method Limits (line 69) | func (s *s3client) Limits() Limits { method Create (line 84) | func (s *s3client) Create(ctx context.Context) error { method Head (line 99) | func (s *s3client) Head(ctx context.Context, key string) (Object, erro... method Get (line 121) | func (s *s3client) Get(ctx context.Context, key string, off, limit int... method Put (line 154) | func (s *s3client) Put(ctx context.Context, key string, in io.Reader, ... method Copy (line 194) | func (s *s3client) Copy(ctx context.Context, dst, src string) error { method Delete (line 206) | func (s *s3client) Delete(ctx context.Context, key string, getters ...... method List (line 229) | func (s *s3client) List(ctx context.Context, prefix, start, token, del... method ListAll (line 288) | func (s *s3client) ListAll(ctx context.Context, prefix, marker string,... method CreateMultipartUpload (line 292) | func (s *s3client) CreateMultipartUpload(ctx context.Context, key stri... method UploadPart (line 305) | func (s *s3client) UploadPart(ctx context.Context, key string, uploadI... method UploadPartCopy (line 321) | func (s *s3client) UploadPartCopy(ctx context.Context, key string, upl... method AbortUpload (line 336) | func (s *s3client) AbortUpload(ctx context.Context, key string, upload... method CompleteUpload (line 345) | func (s *s3client) CompleteUpload(ctx context.Context, key string, upl... method ListUploads (line 360) | func (s *s3client) ListUploads(ctx context.Context, marker string) ([]... method SetStorageClass (line 381) | func (s *s3client) SetStorageClass(sc string) error { function isExists (line 79) | func isExists(err error) bool { function autoS3Region (line 386) | func autoS3Region(bucketName, accessKey, secretKey string) (string, erro... function parseRegion (line 429) | func parseRegion(endpoint string) string { function defaultPathStyle (line 446) | func defaultPathStyle() bool { function newS3 (line 454) | func newS3(endpoint, accessKey, secretKey, token string) (ObjectStorage,... function init (line 591) | func init() { FILE: pkg/object/s3_test.go function Test_s3client_full_string (line 25) | func Test_s3client_full_string(t *testing.T) { FILE: pkg/object/scw.go type scw (line 36) | type scw struct method String (line 40) | func (s *scw) String() string { method Limits (line 44) | func (s *scw) Limits() Limits { function newScw (line 54) | func newScw(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 93) | func init() { FILE: pkg/object/sftp.go type conn (line 37) | type conn struct method wait (line 44) | func (c *conn) wait() { method close (line 49) | func (c *conn) close() error { method closed (line 59) | func (c *conn) closed() error { type sftpStore (line 68) | type sftpStore struct method sftpConnection (line 79) | func (f *sftpStore) sftpConnection() (c *conn, err error) { method getSftpConnection (line 102) | func (f *sftpStore) getSftpConnection() (c *conn, err error) { method putSftpConnection (line 126) | func (f *sftpStore) putSftpConnection(c *conn, err error) { method String (line 154) | func (f *sftpStore) String() string { method path (line 159) | func (f *sftpStore) path(key string) string { method Head (line 163) | func (f *sftpStore) Head(ctx context.Context, key string) (Object, err... method Get (line 185) | func (f *sftpStore) Get(ctx context.Context, key string, off, limit in... method Put (line 215) | func (f *sftpStore) Put(ctx context.Context, key string, in io.Reader,... method Chtimes (line 267) | func (f *sftpStore) Chtimes(key string, mtime time.Time) (err error) { method Chmod (line 279) | func (f *sftpStore) Chmod(key string, mode os.FileMode) (err error) { method Chown (line 289) | func (f *sftpStore) Chown(key string, owner, group string) (err error) { method Symlink (line 304) | func (f *sftpStore) Symlink(oldName, newName string) error { method Readlink (line 319) | func (f *sftpStore) Readlink(name string) (link string, err error) { method Delete (line 328) | func (f *sftpStore) Delete(ctx context.Context, key string, getters ..... method sortByName (line 341) | func (f *sftpStore) sortByName(c *sftp.Client, path string, fis []os.F... method fileInfo (line 368) | func (f *sftpStore) fileInfo(key string, fi os.FileInfo, isSymlink boo... method List (line 386) | func (f *sftpStore) List(ctx context.Context, prefix, marker, token, d... function sshInteractive (line 449) | func sshInteractive(user, instruction string, questions []string, echos ... function unescape (line 471) | func unescape(original string) string { function newSftp (line 480) | func newSftp(endpoint, username, pass, token string) (ObjectStorage, err... function init (line 606) | func init() { FILE: pkg/object/sharding.go type sharded (line 30) | type sharded struct method String (line 35) | func (s *sharded) String() string { method Limits (line 39) | func (s *sharded) Limits() Limits { method Create (line 45) | func (s *sharded) Create(ctx context.Context) error { method pick (line 54) | func (s *sharded) pick(key string) ObjectStorage { method Head (line 61) | func (s *sharded) Head(ctx context.Context, key string) (Object, error) { method Get (line 65) | func (s *sharded) Get(ctx context.Context, key string, off, limit int6... method Put (line 69) | func (s *sharded) Put(ctx context.Context, key string, body io.Reader,... method Copy (line 73) | func (s *sharded) Copy(ctx context.Context, dst, src string) error { method Delete (line 77) | func (s *sharded) Delete(ctx context.Context, key string, getters ...A... method SetStorageClass (line 81) | func (s *sharded) SetStorageClass(sc string) error { method ListAll (line 170) | func (s *sharded) ListAll(ctx context.Context, prefix, marker string, ... method CreateMultipartUpload (line 199) | func (s *sharded) CreateMultipartUpload(ctx context.Context, key strin... method UploadPart (line 203) | func (s *sharded) UploadPart(ctx context.Context, key string, uploadID... method AbortUpload (line 207) | func (s *sharded) AbortUpload(ctx context.Context, key string, uploadI... method CompleteUpload (line 211) | func (s *sharded) CompleteUpload(ctx context.Context, key string, uplo... constant maxResults (line 91) | maxResults = 10000 function ListAll (line 94) | func ListAll(ctx context.Context, store ObjectStorage, prefix, marker st... type nextKey (line 151) | type nextKey struct type nextObjects (line 156) | type nextObjects struct method Len (line 160) | func (s *nextObjects) Len() int { return len(s.os) } method Less (line 161) | func (s *nextObjects) Less(i, j int) bool { return s.os[i].o.Key() < s... method Swap (line 162) | func (s *nextObjects) Swap(i, j int) { s.os[i], s.os[j] = s.os[j]... method Push (line 163) | func (s *nextObjects) Push(o interface{}) { s.os = append(s.os, o.(nex... method Pop (line 164) | func (s *nextObjects) Pop() interface{} { function NewSharded (line 215) | func NewSharded(name, endpoint, ak, sk, token string, shards int) (Objec... FILE: pkg/object/space.go type space (line 35) | type space struct method String (line 39) | func (s *space) String() string { method Limits (line 43) | func (s *space) Limits() Limits { method SetStorageClass (line 47) | func (s *space) SetStorageClass(sc string) error { function newSpace (line 51) | func newSpace(endpoint, accessKey, secretKey, token string) (ObjectStora... function init (line 81) | func init() { FILE: pkg/object/sql.go type sqlStore (line 40) | type sqlStore struct method String (line 54) | func (s *sqlStore) String() string { method Get (line 62) | func (s *sqlStore) Get(ctx context.Context, key string, off, limit int... method Put (line 82) | func (s *sqlStore) Put(ctx context.Context, key string, in io.Reader, ... method Head (line 109) | func (s *sqlStore) Head(ctx context.Context, key string) (Object, erro... method Delete (line 127) | func (s *sqlStore) Delete(ctx context.Context, key string, getters ...... method List (line 132) | func (s *sqlStore) List(ctx context.Context, prefix, marker, token, de... type blob (line 46) | type blob struct function newSQLStore (line 161) | func newSQLStore(driver, addr, user, password string) (ObjectStorage, er... function removeScheme (line 209) | func removeScheme(addr string) string { FILE: pkg/object/sql_mysql.go function init (line 26) | func init() { FILE: pkg/object/sql_pg.go function init (line 26) | func init() { FILE: pkg/object/sql_sqlite.go function init (line 26) | func init() { FILE: pkg/object/swift.go type swiftOSS (line 37) | type swiftOSS struct method String (line 45) | func (s *swiftOSS) String() string { method Create (line 49) | func (s *swiftOSS) Create(ctx context.Context) error { method Get (line 54) | func (s *swiftOSS) Get(ctx context.Context, key string, off, limit int... method Put (line 67) | func (s *swiftOSS) Put(ctx context.Context, key string, in io.Reader, ... method Delete (line 73) | func (s *swiftOSS) Delete(ctx context.Context, key string, getters ...... method List (line 81) | func (s *swiftOSS) List(ctx context.Context, prefix, marker, token, de... method Head (line 109) | func (s *swiftOSS) Head(ctx context.Context, key string) (Object, erro... function newSwiftOSS (line 126) | func newSwiftOSS(endpoint, username, apiKey, token string) (ObjectStorag... function init (line 162) | func init() { FILE: pkg/object/tikv.go type tikv (line 38) | type tikv struct method String (line 44) | func (t *tikv) String() string { method Get (line 48) | func (t *tikv) Get(ctx context.Context, key string, off, limit int64, ... method Put (line 66) | func (t *tikv) Put(ctx context.Context, key string, in io.Reader, gett... method Head (line 74) | func (t *tikv) Head(ctx context.Context, key string) (Object, error) { method Delete (line 88) | func (t *tikv) Delete(ctx context.Context, key string, getters ...Attr... method List (line 92) | func (t *tikv) List(ctx context.Context, prefix, marker, token, delimi... function newTiKV (line 116) | func newTiKV(endpoint, accesskey, secretkey, token string) (ObjectStorag... function init (line 162) | func init() { FILE: pkg/object/tos.go type tosClient (line 38) | type tosClient struct method String (line 44) | func (t *tosClient) String() string { method Limits (line 48) | func (t *tosClient) Limits() Limits { method Create (line 58) | func (t *tosClient) Create(ctx context.Context) error { method Get (line 68) | func (t *tosClient) Get(ctx context.Context, key string, off, limit in... method Put (line 94) | func (t *tosClient) Put(ctx context.Context, key string, in io.Reader,... method Delete (line 117) | func (t *tosClient) Delete(ctx context.Context, key string, getters ..... method Head (line 129) | func (t *tosClient) Head(ctx context.Context, key string) (Object, err... method List (line 148) | func (t *tosClient) List(ctx context.Context, prefix, start, token, de... method ListAll (line 184) | func (t *tosClient) ListAll(ctx context.Context, prefix, marker string... method CreateMultipartUpload (line 188) | func (t *tosClient) CreateMultipartUpload(ctx context.Context, key str... method UploadPart (line 200) | func (t *tosClient) UploadPart(ctx context.Context, key string, upload... method UploadPartCopy (line 216) | func (t *tosClient) UploadPartCopy(ctx context.Context, key string, up... method AbortUpload (line 233) | func (t *tosClient) AbortUpload(ctx context.Context, key string, uploa... method CompleteUpload (line 241) | func (t *tosClient) CompleteUpload(ctx context.Context, key string, up... method ListUploads (line 255) | func (t *tosClient) ListUploads(ctx context.Context, marker string) ([... method Copy (line 271) | func (t *tosClient) Copy(ctx context.Context, dst, src string) error { method SetStorageClass (line 282) | func (t *tosClient) SetStorageClass(sc string) error { function newTOS (line 287) | func newTOS(endpoint, accessKey, secretKey, token string) (ObjectStorage... function init (line 314) | func init() { FILE: pkg/object/ufile.go type ufile (line 41) | type ufile struct method String (line 45) | func (u *ufile) String() string { method Limits (line 50) | func (u *ufile) Limits() Limits { method Create (line 86) | func (u *ufile) Create(ctx context.Context) error { method parseResp (line 132) | func (u *ufile) parseResp(resp *http.Response, out interface{}) error { method Copy (line 171) | func (u *ufile) Copy(ctx context.Context, dst, src string) error { method List (line 226) | func (u *ufile) List(ctx context.Context, prefix, start, token, delimi... method CreateMultipartUpload (line 273) | func (u *ufile) CreateMultipartUpload(ctx context.Context, key string)... method UploadPart (line 285) | func (u *ufile) UploadPart(ctx context.Context, key string, uploadID s... method AbortUpload (line 304) | func (u *ufile) AbortUpload(ctx context.Context, key string, uploadID ... method CompleteUpload (line 308) | func (u *ufile) CompleteUpload(ctx context.Context, key string, upload... method ListUploads (line 337) | func (u *ufile) ListUploads(ctx context.Context, marker string) ([]*Pe... function ufileSigner (line 61) | func ufileSigner(req *http.Request, accessKey, secretKey, signName strin... function copyObj (line 158) | func copyObj(ctx context.Context, store ObjectStorage, dst, src string) ... type ContentsItem (line 201) | type ContentsItem struct type CommonPrefixesItem (line 210) | type CommonPrefixesItem struct type uFileListObjectsOutput (line 215) | type uFileListObjectsOutput struct type ufileCreateMultipartUploadResult (line 266) | type ufileCreateMultipartUploadResult struct type ufileUpload (line 324) | type ufileUpload struct type ufileListMultipartUploadsResult (line 330) | type ufileListMultipartUploadsResult struct function newUFile (line 362) | func newUFile(endpoint, accessKey, secretKey, token string) (ObjectStora... function init (line 369) | func init() { FILE: pkg/object/wasabi.go type wasabi (line 35) | type wasabi struct method String (line 39) | func (s *wasabi) String() string { method SetStorageClass (line 43) | func (s *wasabi) SetStorageClass(_ string) error { function newWasabi (line 47) | func newWasabi(endpoint, accessKey, secretKey, token string) (ObjectStor... function init (line 80) | func init() { FILE: pkg/object/webdav.go type webdav (line 36) | type webdav struct method String (line 42) | func (w *webdav) String() string { method Create (line 46) | func (w *webdav) Create(ctx context.Context) error { method Head (line 50) | func (w *webdav) Head(ctx context.Context, key string) (Object, error) { method Get (line 67) | func (w *webdav) Get(ctx context.Context, key string, off, limit int64... method Put (line 74) | func (w *webdav) Put(ctx context.Context, key string, in io.Reader, ge... method Delete (line 84) | func (w *webdav) Delete(ctx context.Context, key string, getters ...At... method Copy (line 107) | func (w *webdav) Copy(ctx context.Context, dst, src string) error { method List (line 120) | func (w *webdav) List(ctx context.Context, prefix, marker, token, deli... type webDAVFile (line 111) | type webDAVFile struct method Name (line 116) | func (w webDAVFile) Name() string { function newWebDAV (line 176) | func newWebDAV(endpoint, user, passwd, token string) (ObjectStorage, err... function init (line 192) | func init() { FILE: pkg/sync/cluster.go type Stat (line 46) | type Stat struct function updateStats (line 58) | func updateStats(r *Stat) { function httpRequest (line 76) | func httpRequest(url string, body []byte) (ans []byte, err error) { function sendStats (line 96) | func sendStats(addr string) { function startManager (line 147) | func startManager(config *Config, tasks <-chan object.Object) (string, e... function findSelfPath (line 238) | func findSelfPath() (string, error) { function launchWorker (line 258) | func launchWorker(address string, config *Config, wg *sync.WaitGroup) { function marshalObjects (line 366) | func marshalObjects(objs []object.Object) ([]byte, error) { function unmarshalObjects (line 380) | func unmarshalObjects(d []byte) ([]object.Object, error) { function fetchJobs (line 397) | func fetchJobs(tasks chan<- object.Object, config *Config) { FILE: pkg/sync/cluster_test.go type obj (line 27) | type obj struct method Key (line 35) | func (o *obj) Key() string { return o.key } method Size (line 36) | func (o *obj) Size() int64 { return o.size } method Mtime (line 37) | func (o *obj) Mtime() time.Time { return o.mtime } method IsDir (line 38) | func (o *obj) IsDir() bool { return o.isDir } method IsSymlink (line 39) | func (o *obj) IsSymlink() bool { return o.isSymlink } method StorageClass (line 40) | func (o *obj) StorageClass() string { return "" } type file (line 42) | type file struct method Owner (line 46) | func (o *file) Owner() string { return "" } method Group (line 47) | func (o *file) Group() string { return "" } method Mode (line 48) | func (o *file) Mode() os.FileMode { return 0 } function TestCluster (line 50) | func TestCluster(t *testing.T) { function TestMarshal (line 83) | func TestMarshal(t *testing.T) { FILE: pkg/sync/config.go type Config (line 32) | type Config struct constant JFS_UMASK (line 81) | JFS_UMASK = "JFS_UMASK" function envList (line 83) | func envList() []string { function NewConfigFromCli (line 156) | func NewConfigFromCli(c *cli.Context) *Config { FILE: pkg/sync/download.go type parallelDownloader (line 28) | type parallelDownloader struct method hasErr (line 41) | func (r *parallelDownloader) hasErr() bool { method setErr (line 47) | func (r *parallelDownloader) setErr(err error) { method download (line 62) | func (r *parallelDownloader) download() { method Read (line 111) | func (r *parallelDownloader) Read(b []byte) (int, error) { method Close (line 143) | func (r *parallelDownloader) Close() { constant downloadBufSize (line 53) | downloadBufSize = 10 << 20 function newParallelDownloader (line 155) | func newParallelDownloader(store object.ObjectStorage, key string, size ... FILE: pkg/sync/download_test.go function TestDownload (line 29) | func TestDownload(t *testing.T) { FILE: pkg/sync/sync.go constant maxResults (line 50) | maxResults = 1000 constant defaultPartSize (line 51) | defaultPartSize = 5 << 20 constant bufferSize (line 52) | bufferSize = 32 << 10 constant maxBlock (line 53) | maxBlock = defaultPartSize * 2 constant markDeleteSrc (line 54) | markDeleteSrc = -1 constant markDeleteDst (line 55) | markDeleteDst = -2 constant markCopyPerms (line 56) | markCopyPerms = -3 constant markChecksum (line 57) | markChecksum = -4 type mixedLimiter (line 75) | type mixedLimiter struct method Wait (line 80) | func (l *mixedLimiter) Wait(count int64) { type globalLimit (line 89) | type globalLimit struct method request (line 108) | func (l *globalLimit) request(ask int64) (int64, int64, error) { method wait (line 135) | func (l *globalLimit) wait(bytes int64) { method checkBalance (line 175) | func (l *globalLimit) checkBalance() { type req (line 98) | type req struct type resp (line 103) | type resp struct function incrTotal (line 195) | func incrTotal(n int64) { function incrHandled (line 199) | func incrHandled(n int) { type chksumReader (line 205) | type chksumReader struct method Read (line 211) | func (r *chksumReader) Read(p []byte) (n int, err error) { type chksumWithSz (line 219) | type chksumWithSz struct function formatSize (line 225) | func formatSize(bytes int64) string { function ListAll (line 240) | func ListAll(store object.ObjectStorage, prefix, start, end string, foll... function shouldRetry (line 345) | func shouldRetry(err error) bool { function try (line 362) | func try(n int, f func() error) (err error) { function deleteObj (line 374) | func deleteObj(storage object.ObjectStorage, key string, dry bool) { function needCopyPerms (line 390) | func needCopyPerms(o1, o2 object.Object) bool { function copyPerms (line 396) | func copyPerms(dst object.ObjectStorage, obj object.Object, config *Conf... function calPartChksum (line 412) | func calPartChksum(objStor object.ObjectStorage, key string, abort chan ... function calObjChksum (line 447) | func calObjChksum(objStor object.ObjectStorage, key string, abort chan s... function compObjPartBinary (line 483) | func compObjPartBinary(src, dst object.ObjectStorage, key string, abort ... function compObjBinary (line 530) | func compObjBinary(src, dst object.ObjectStorage, key string, abort chan... function doCheckSum (line 562) | func doCheckSum(src, dst object.ObjectStorage, key string, srcChksumPtr ... function checkSum (line 597) | func checkSum(src, dst object.ObjectStorage, key string, srcChksum *uint... function inMap (line 619) | func inMap(obj object.ObjectStorage, m map[string]struct{}) bool { function doCopySingle (line 624) | func doCopySingle(src, dst object.ObjectStorage, key string, size int64,... function doCopySingle0 (line 664) | func doCopySingle0(src, dst object.ObjectStorage, key string, size int64... type withProgress (line 704) | type withProgress struct method Read (line 708) | func (w *withProgress) Read(b []byte) (int, error) { function dynAlloc (line 717) | func dynAlloc(size int) []byte { function dynFree (line 726) | func dynFree(b []byte) { function init (line 732) | func init() { function doUploadPart (line 746) | func doUploadPart(src, dst object.ObjectStorage, srckey string, off, siz... function choosePartSize (line 780) | func choosePartSize(upload *object.MultipartUpload, size int64) int64 { function doCopyRange (line 792) | func doCopyRange(src, dst object.ObjectStorage, key string, off, size in... function doCopyMultiple (line 866) | func doCopyMultiple(src, dst object.ObjectStorage, key string, size int6... function InitForCopyData (line 919) | func InitForCopyData() { function CopyData (line 926) | func CopyData(src, dst object.ObjectStorage, key string, size int64, cal... type holder (line 961) | type holder struct function fetchTask (line 968) | func fetchTask(tasks chan object.Object) (t object.Object, done func()) { function worker (line 998) | func worker(tasks chan object.Object, src, dst object.ObjectStorage, con... function checkChange (line 1111) | func checkChange(src, dst object.ObjectStorage, obj object.Object, key s... function copyLink (line 1144) | func copyLink(src object.ObjectStorage, dst object.ObjectStorage, key st... type objWithSize (line 1157) | type objWithSize struct method Size (line 1162) | func (o *objWithSize) Size() int64 { type fileWithSize (line 1166) | type fileWithSize struct method Size (line 1171) | func (o *fileWithSize) Size() int64 { function withSize (line 1175) | func withSize(o object.Object, nsize int64) object.Object { function withoutSize (line 1182) | func withoutSize(o object.Object) object.Object { function handleExtraObject (line 1197) | func handleExtraObject(tasks chan<- object.Object, dstobj object.Object,... function startSingleProducer (line 1216) | func startSingleProducer(tasks chan<- object.Object, src, dst object.Obj... function produce (line 1239) | func produce(tasks chan<- object.Object, srckeys, dstkeys <-chan object.... type rule (line 1354) | type rule struct function parseRule (line 1359) | func parseRule(name, p string) rule { function parseIncludeRules (line 1366) | func parseIncludeRules(args []string) (rules []rule) { function filterKey (line 1391) | func filterKey(o object.Object, now time.Time, rules []rule, config *Con... function filter (line 1418) | func filter(keys <-chan object.Object, rules []rule, config *Config) <-c... function matchTwoStar (line 1441) | func matchTwoStar(p string, s []string) bool { function matchPrefix (line 1466) | func matchPrefix(p, s []string) bool { function matchSuffix (line 1488) | func matchSuffix(p, s []string) bool { function matchFullPath (line 1519) | func matchFullPath(rules []rule, key string) bool { function matchLeveledPath (line 1544) | func matchLeveledPath(rules []rule, key string) bool { function listCommonPrefix (line 1577) | func listCommonPrefix(store object.ObjectStorage, prefix string, cp chan... function produceFromList (line 1619) | func produceFromList(tasks chan<- object.Object, src, dst object.ObjectS... function produceSingleObject (line 1678) | func produceSingleObject(tasks chan<- object.Object, src, dst object.Obj... function startProducer (line 1712) | func startProducer(tasks chan<- object.Object, src, dst object.ObjectSto... function Sync (line 1806) | func Sync(src, dst object.ObjectStorage, config *Config) error { function initSyncMetrics (line 2024) | func initSyncMetrics(config *Config) { FILE: pkg/sync/sync_test.go function collectAll (line 32) | func collectAll(c <-chan object.Object) []string { function TestIterator (line 41) | func TestIterator(t *testing.T) { function TestIeratorSingleEmptyKey (line 67) | func TestIeratorSingleEmptyKey(t *testing.T) { function deepEqualWithOutMtime (line 86) | func deepEqualWithOutMtime(a, b object.Object) bool { function TestSync (line 92) | func TestSync(t *testing.T) { function TestSyncIncludeAndExclude (line 181) | func TestSyncIncludeAndExclude(t *testing.T) { function TestParseRules (line 268) | func TestParseRules(t *testing.T) { function TestSyncLink (line 313) | func TestSyncLink(t *testing.T) { function TestSyncLinkWithOutFollow (line 374) | func TestSyncLinkWithOutFollow(t *testing.T) { function TestSingleLink (line 416) | func TestSingleLink(t *testing.T) { function TestSyncCheckAllLink (line 448) | func TestSyncCheckAllLink(t *testing.T) { function TestSyncCheckNewLink (line 489) | func TestSyncCheckNewLink(t *testing.T) { function TestLimits (line 529) | func TestLimits(t *testing.T) { function testKeysEqual (line 590) | func testKeysEqual(objsCh <-chan object.Object, expectedKeys []string) e... function TestMatchObjects (line 609) | func TestMatchObjects(t *testing.T) { function TestMatchFullPatch (line 682) | func TestMatchFullPatch(t *testing.T) { function TestParseFilterRule (line 738) | func TestParseFilterRule(t *testing.T) { type mockObject (line 759) | type mockObject struct method Key (line 764) | func (o *mockObject) Key() string { return "" } method IsDir (line 765) | func (o *mockObject) IsDir() bool { return false } method IsSymlink (line 766) | func (o *mockObject) IsSymlink() bool { return false } method Size (line 767) | func (o *mockObject) Size() int64 { return o.size } method Mtime (line 768) | func (o *mockObject) Mtime() time.Time { return o.mtime } method StorageClass (line 769) | func (o *mockObject) StorageClass() string { return "" } function TestFilterSizeAndAge (line 771) | func TestFilterSizeAndAge(t *testing.T) { FILE: pkg/usage/usage.go type usage (line 36) | type usage struct function sendUsage (line 47) | func sendUsage(u usage) error { function ReportUsage (line 70) | func ReportUsage(m meta.Meta, version string) { FILE: pkg/usage/usage_test.go function TestUsageReport (line 32) | func TestUsageReport(t *testing.T) { FILE: pkg/utils/alloc.go function Alloc (line 31) | func Alloc(size int) []byte { function Alloc0 (line 38) | func Alloc0(size int) []byte { function Free (line 48) | func Free(b []byte) { function Free0 (line 55) | func Free0(b []byte) { function AllocMemory (line 61) | func AllocMemory() int64 { function PowerOf2 (line 68) | func PowerOf2(s int) int { function init (line 76) | func init() { FILE: pkg/utils/alloc_test.go function TestAlloc (line 23) | func TestAlloc(t *testing.T) { function PowerOf2Loop (line 35) | func PowerOf2Loop(s int) int { function BenchmarkPowerOf2 (line 45) | func BenchmarkPowerOf2(b *testing.B) { FILE: pkg/utils/buffer.go type Buffer (line 25) | type Buffer struct method Len (line 47) | func (b *Buffer) Len() int { method HasMore (line 52) | func (b *Buffer) HasMore() bool { method Left (line 57) | func (b *Buffer) Left() int { method Seek (line 62) | func (b *Buffer) Seek(p int) { method Offset (line 66) | func (b *Buffer) Offset() int { method Buffer (line 71) | func (b *Buffer) Buffer() []byte { method Put8 (line 76) | func (b *Buffer) Put8(v uint8) { method Get8 (line 82) | func (b *Buffer) Get8() uint8 { method Put16 (line 89) | func (b *Buffer) Put16(v uint16) { method Get16 (line 95) | func (b *Buffer) Get16() uint16 { method Put32 (line 102) | func (b *Buffer) Put32(v uint32) { method Get32 (line 108) | func (b *Buffer) Get32() uint32 { method Put64 (line 115) | func (b *Buffer) Put64(v uint64) { method Get64 (line 121) | func (b *Buffer) Get64() uint64 { method Put (line 128) | func (b *Buffer) Put(v []byte) { method Get (line 135) | func (b *Buffer) Get(l int) []byte { method SetBytes (line 141) | func (b *Buffer) SetBytes(buf []byte) { method Bytes (line 148) | func (b *Buffer) Bytes() []byte { function NewBuffer (line 32) | func NewBuffer(sz uint32) *Buffer { function ReadBuffer (line 37) | func ReadBuffer(buf []byte) *Buffer { function FromBuffer (line 42) | func FromBuffer(buf []byte) *Buffer { function NewNativeBuffer (line 155) | func NewNativeBuffer(buf []byte) *Buffer { function init (line 159) | func init() { FILE: pkg/utils/buffer_test.go function assertEqual (line 25) | func assertEqual(t *testing.T, a interface{}, b interface{}) { function TestBuffer (line 33) | func TestBuffer(t *testing.T) { function TestSetBytes (line 57) | func TestSetBytes(t *testing.T) { function TestNativeBuffer (line 67) | func TestNativeBuffer(t *testing.T) { FILE: pkg/utils/clock_test.go function TestClock (line 25) | func TestClock(t *testing.T) { function BenchmarkNow (line 37) | func BenchmarkNow(b *testing.B) { function BenchmarkClock (line 45) | func BenchmarkClock(b *testing.B) { FILE: pkg/utils/clock_unix.go function Now (line 26) | func Now() time.Time { function Clock (line 30) | func Clock() time.Duration { FILE: pkg/utils/clock_windows.go type clock (line 25) | type clock struct function Now (line 32) | func Now() time.Time { function init (line 41) | func init() { FILE: pkg/utils/cond.go type Cond (line 25) | type Cond struct method Signal (line 32) | func (c *Cond) Signal() { method Broadcast (line 41) | func (c *Cond) Broadcast() { method WaitWithTimeout (line 50) | func (c *Cond) WaitWithTimeout(d time.Duration) bool { function NewCond (line 76) | func NewCond(lock sync.Locker) *Cond { FILE: pkg/utils/cond_test.go function TestCond (line 25) | func TestCond(t *testing.T) { FILE: pkg/utils/general.go function SleepWithJitter (line 24) | func SleepWithJitter(d time.Duration) { function JitterIt (line 28) | func JitterIt[T float64 | time.Duration](d T) T { FILE: pkg/utils/humanize.go function ParseBytes (line 26) | func ParseBytes(ctx *cli.Context, key string, unit byte) uint64 { function ParseBytesStr (line 34) | func ParseBytesStr(key, str string, unit byte) uint64 { function ParseMbps (line 68) | func ParseMbps(ctx *cli.Context, key string) int64 { function ParseMbpsStr (line 77) | func ParseMbpsStr(key, str string) int64 { function Mbps (line 104) | func Mbps(val int64) string { FILE: pkg/utils/logger.go type logHandle (line 35) | type logHandle struct method Format (line 45) | func (l *logHandle) Format(e *logrus.Entry) ([]byte, error) { method Log (line 119) | func (l *logHandle) Log(args ...interface{}) { function MethodName (line 91) | func MethodName(fullFuncName string) string { function newLogger (line 123) | func newLogger(name string) *logHandle { function GetLogger (line 134) | func GetLogger(name string) *logHandle { function SetLogLevel (line 147) | func SetLogLevel(lvl logrus.Level) { function DisableLogColor (line 155) | func DisableLogColor() { function SetOutFile (line 163) | func SetOutFile(name string) { function SetOutput (line 176) | func SetOutput(w io.Writer) { function SetLogID (line 184) | func SetLogID(id string) { FILE: pkg/utils/logger_syslog.go type logLine (line 32) | type logLine struct type SyslogHook (line 37) | type SyslogHook struct method flush (line 42) | func (hook *SyslogHook) flush() { method Fire (line 66) | func (hook *SyslogHook) Fire(entry *logrus.Entry) error { function InitLoggers (line 84) | func InitLoggers(logToSyslog bool) { FILE: pkg/utils/logger_test.go function TestLogger (line 27) | func TestLogger(t *testing.T) { function TestMethodName (line 62) | func TestMethodName(t *testing.T) { FILE: pkg/utils/logger_windows.go function InitLoggers (line 19) | func InitLoggers(logToSyslog bool) {} FILE: pkg/utils/memusage.go function MemoryUsage (line 29) | func MemoryUsage() (virt, rss uint64) { FILE: pkg/utils/memusage_test.go function TestMemUsage (line 21) | func TestMemUsage(t *testing.T) { FILE: pkg/utils/memusage_windows.go type PROCESS_MEMORY_COUNTERS (line 27) | type PROCESS_MEMORY_COUNTERS struct function getMemoryInfo (line 45) | func getMemoryInfo(pid int32) (PROCESS_MEMORY_COUNTERS, error) { function getProcessMemoryInfo (line 59) | func getProcessMemoryInfo(h windows.Handle, mem *PROCESS_MEMORY_COUNTERS... function MemoryUsage (line 71) | func MemoryUsage() (virt, rss uint64) { FILE: pkg/utils/proc_title.go function SetProcTitle (line 28) | func SetProcTitle(args []string) { FILE: pkg/utils/proc_title_noop.go function SetProcTitle (line 22) | func SetProcTitle(args []string) { FILE: pkg/utils/progress.go type Progress (line 30) | type Progress struct method AddCountBar (line 96) | func (p *Progress) AddCountBar(name string, total int64) *Bar { method AddCountSpinner (line 138) | func (p *Progress) AddCountSpinner(name string) *Bar { method AddByteSpinner (line 152) | func (p *Progress) AddByteSpinner(name string) *Bar { method AddIoSpeedBar (line 168) | func (p *Progress) AddIoSpeedBar(name string, total int64) *Bar { method AddDoubleSpinner (line 187) | func (p *Progress) AddDoubleSpinner(name string) *DoubleSpinner { method AddDoubleSpinnerTwo (line 194) | func (p *Progress) AddDoubleSpinnerTwo(countName, sizeName string) *Do... method Done (line 201) | func (p *Progress) Done() { type Bar (line 36) | type Bar struct method IncrTotal (line 41) | func (b *Bar) IncrTotal(n int64) { method SetTotal (line 46) | func (b *Bar) SetTotal(total int64) { method GetTotal (line 51) | func (b *Bar) GetTotal() int64 { method Done (line 55) | func (b *Bar) Done() { type DoubleSpinner (line 59) | type DoubleSpinner struct method IncrInt64 (line 64) | func (s *DoubleSpinner) IncrInt64(size int64) { method Done (line 69) | func (s *DoubleSpinner) Done() { method Current (line 74) | func (s *DoubleSpinner) Current() (int64, int64) { method SetCurrent (line 78) | func (s *DoubleSpinner) SetCurrent(count, bytes int64) { function NewProgress (line 83) | func NewProgress(quiet bool) *Progress { function newSpinner (line 130) | func newSpinner() mpb.BarFiller { function MockProgress (line 211) | func MockProgress() (*Progress, *Bar) { FILE: pkg/utils/progress_test.go function TestProgresBar (line 24) | func TestProgresBar(t *testing.T) { FILE: pkg/utils/rusage.go type Rusage (line 24) | type Rusage struct method GetUtime (line 29) | func (ru *Rusage) GetUtime() float64 { method GetStime (line 34) | func (ru *Rusage) GetStime() float64 { function GetRusage (line 39) | func GetRusage() *Rusage { FILE: pkg/utils/rusage_test.go function TestRUsage (line 24) | func TestRUsage(t *testing.T) { FILE: pkg/utils/rusage_windows.go type Rusage (line 21) | type Rusage struct method GetUtime (line 26) | func (ru *Rusage) GetUtime() float64 { method GetStime (line 30) | func (ru *Rusage) GetStime() float64 { function GetRusage (line 34) | func GetRusage() *Rusage { FILE: pkg/utils/utils.go function Exists (line 38) | func Exists(path string) bool { function SplitDir (line 44) | func SplitDir(d string) []string { function GetLocalIp (line 53) | func GetLocalIp(address string) (string, error) { function FindLocalIPs (line 65) | func FindLocalIPs(allowedInterfaces ...string) ([]net.IP, error) { function WithTimeout (line 110) | func WithTimeout(pCtx context.Context, f func(context.Context) error, ti... function RemovePassword (line 132) | func RemovePassword(uri string) string { function GuessMimeType (line 148) | func GuessMimeType(key string) string { function StringContains (line 156) | func StringContains(s []string, e string) bool { function FormatBytes (line 165) | func FormatBytes(n uint64) string { function SupportANSIColor (line 178) | func SupportANSIColor(fd uintptr) bool { function RandRead (line 182) | func RandRead(buf []byte) { function UserName (line 196) | func UserName(uid int) string { function GroupName (line 212) | func GroupName(gid int) string { function LookupUser (line 228) | func LookupUser(name string) int { function LookupGroup (line 248) | func LookupGroup(name string) int { function Duration (line 268) | func Duration(s string) time.Duration { FILE: pkg/utils/utils_darwin.go function GetKernelVersion (line 24) | func GetKernelVersion() (major, minor int) { return } function GetSysInfo (line 26) | func GetSysInfo() string { function SetIOFlusher (line 48) | func SetIOFlusher() {} function DisableTHP (line 50) | func DisableTHP() {} function AdjustOOMKiller (line 52) | func AdjustOOMKiller(score int) {} FILE: pkg/utils/utils_linux.go function GetKernelVersion (line 31) | func GetKernelVersion() (major, minor int) { function GetSysInfo (line 53) | func GetSysInfo() string { function SetIOFlusher (line 73) | func SetIOFlusher() { function DisableTHP (line 83) | func DisableTHP() { function AdjustOOMKiller (line 101) | func AdjustOOMKiller(score int) { FILE: pkg/utils/utils_test.go function TestMin (line 29) | func TestMin(t *testing.T) { function TestExists (line 35) | func TestExists(t *testing.T) { function TestSplitDir (line 40) | func TestSplitDir(t *testing.T) { function TestGetInode (line 47) | func TestGetInode(t *testing.T) { function TestLocalIp (line 60) | func TestLocalIp(t *testing.T) { function TestFindLocalIPs (line 74) | func TestFindLocalIPs(t *testing.T) { function TestTimeout (line 102) | func TestTimeout(t *testing.T) { function TestRemovePassword (line 118) | func TestRemovePassword(t *testing.T) { FILE: pkg/utils/utils_unix.go function GetCurrentUID (line 32) | func GetCurrentUID() int { function GetCurrentGID (line 36) | func GetCurrentGID() int { function GetCurrentUserSIDStr (line 40) | func GetCurrentUserSIDStr() string { function GetCurrentUserGroupSIDStr (line 44) | func GetCurrentUserGroupSIDStr() string { function IsWinAdminOrElevatedPrivilege (line 48) | func IsWinAdminOrElevatedPrivilege() bool { function GetFileInode (line 52) | func GetFileInode(path string) (uint64, error) { function GetFileInodeNotFollow (line 63) | func GetFileInodeNotFollow(path string) (uint64, error) { function GetDev (line 74) | func GetDev(fpath string) int { // ID of device containing file function GetKernelInfo (line 85) | func GetKernelInfo() (string, error) { function GetUmask (line 97) | func GetUmask() int { function SetUmask (line 103) | func SetUmask(umask int) int { function ErrnoName (line 107) | func ErrnoName(err syscall.Errno) string { FILE: pkg/utils/utils_windows.go function GetCurrentUID (line 29) | func GetCurrentUID() int { function GetCurrentGID (line 33) | func GetCurrentGID() int { function GetCurrentUserSIDStr (line 37) | func GetCurrentUserSIDStr() string { function GetCurrentUserGroupSIDStr (line 47) | func GetCurrentUserGroupSIDStr() string { function IsWinAdminOrElevatedPrivilege (line 57) | func IsWinAdminOrElevatedPrivilege() bool { function getFileInode (line 70) | func getFileInode(path string, follow bool) (uint64, error) { function GetFileInode (line 92) | func GetFileInode(path string) (uint64, error) { function GetFileInodeNotFollow (line 96) | func GetFileInodeNotFollow(path string) (uint64, error) { function GetKernelVersion (line 100) | func GetKernelVersion() (major, minor int) { return } function GetDev (line 102) | func GetDev(fpath string) int { return -1 } function GetSysInfo (line 104) | func GetSysInfo() string { function GetUmask (line 109) | func GetUmask() int { return 0 } function SetUmask (line 111) | func SetUmask(umask int) int { function ErrnoName (line 115) | func ErrnoName(err syscall.Errno) string { FILE: pkg/version/version.go type Semver (line 38) | type Semver struct method String (line 43) | func (s *Semver) String() string { function Version (line 54) | func Version() string { function SetVersion (line 58) | func SetVersion(v string) { function GetVersion (line 62) | func GetVersion() Semver { function CompareVersions (line 66) | func CompareVersions(v1, v2 *Semver) (int, error) { function Parse (line 92) | func Parse(vs string) *Semver { FILE: pkg/version/version_test.go function TestVersion (line 21) | func TestVersion(t *testing.T) { FILE: pkg/vfs/accesslog.go type logReader (line 51) | type logReader struct function init (line 62) | func init() { function logit (line 66) | func logit(ctx Context, method string, err syscall.Errno, format string,... function openAccessLog (line 104) | func openAccessLog(fh uint64) uint64 { function closeAccessLog (line 111) | func closeAccessLog(fh uint64) { function readAccessLog (line 117) | func readAccessLog(fh uint64, buf []byte) int { FILE: pkg/vfs/accesslog_test.go function TestAccessLog (line 26) | func TestAccessLog(t *testing.T) { FILE: pkg/vfs/backup.go function Backup (line 51) | func Backup(m meta.Meta, blob object.ObjectStorage, interval time.Durati... function backup (line 101) | func backup(m meta.Meta, blob object.ObjectStorage, now time.Time, fast,... function cleanupBackups (line 144) | func cleanupBackups(blob object.ObjectStorage, now time.Time) { function rotate (line 176) | func rotate(objs []string, now time.Time) []string { FILE: pkg/vfs/backup_test.go function TestRotate (line 27) | func TestRotate(t *testing.T) { function TestBackup (line 70) | func TestBackup(t *testing.T) { FILE: pkg/vfs/compact.go function readSlice (line 37) | func readSlice(store chunk.ChunkStore, s *meta.Slice, page *chunk.Page, ... function Compact (line 54) | func Compact(conf chunk.Config, store chunk.ChunkStore, slices []meta.Sl... FILE: pkg/vfs/compact_test.go function TestCompact (line 28) | func TestCompact(t *testing.T) { FILE: pkg/vfs/fill.go type _file (line 34) | type _file struct type CacheAction (line 39) | type CacheAction method String (line 41) | func (act CacheAction) String() string { constant WarmupCache (line 54) | WarmupCache CacheAction = iota constant EvictCache (line 55) | EvictCache constant CheckCache (line 56) | CheckCache = 2 type CacheFiller (line 59) | type CacheFiller struct method cacheFile (line 75) | func (c *CacheFiller) cacheFile(ctx meta.Context, action CacheAction, ... method Cache (line 131) | func (c *CacheFiller) Cache(ctx meta.Context, action CacheAction, path... method resolve (line 186) | func (c *CacheFiller) resolve(ctx meta.Context, p string, inode *Ino, ... method walkDir (line 247) | func (c *CacheFiller) walkDir(ctx meta.Context, inode Ino, todo chan _... function NewCacheFiller (line 65) | func NewCacheFiller(conf *Config, meta meta.Meta, store chunk.ChunkStore... type token (line 73) | type token struct function sendFile (line 177) | func sendFile(ctx meta.Context, todo chan _file, f _file) error { type sliceIterator (line 278) | type sliceIterator struct method hasNext (line 293) | func (iter *sliceIterator) hasNext() bool { method next (line 322) | func (iter *sliceIterator) next() meta.Slice { method Iterate (line 328) | func (iter *sliceIterator) Iterate(handler sliceHandler, concurrent ch... type sliceHandler (line 291) | type sliceHandler function newSliceIterator (line 363) | func newSliceIterator(ctx meta.Context, mClient meta.Meta, ino Ino, size... FILE: pkg/vfs/fill_test.go function TestFill (line 26) | func TestFill(t *testing.T) { FILE: pkg/vfs/handle.go type handle (line 32) | type handle struct method Write (line 63) | func (h *handle) Write(buf []byte) (int, error) { method addOp (line 70) | func (h *handle) addOp(ctx Context) { method removeOp (line 76) | func (h *handle) removeOp(ctx Context) { method cancelOp (line 88) | func (h *handle) cancelOp(pid uint32) { method Rlock (line 101) | func (h *handle) Rlock(ctx Context) bool { method Runlock (line 116) | func (h *handle) Runlock() { method Wlock (line 125) | func (h *handle) Wlock(ctx Context) bool { method Wunlock (line 143) | func (h *handle) Wunlock() { method Close (line 150) | func (h *handle) Close() { method newHandle (line 161) | func (v *VFS) newHandle(inode Ino, readOnly bool) *handle { method findAllHandles (line 179) | func (v *VFS) findAllHandles(inode Ino) []*handle { constant O_RECOVERED (line 192) | O_RECOVERED = 1 << 31 method findHandle (line 194) | func (v *VFS) findHandle(inode Ino, fh uint64) *handle { method releaseHandle (line 214) | func (v *VFS) releaseHandle(inode Ino, fh uint64) { method newFileHandle (line 237) | func (v *VFS) newFileHandle(inode Ino, length uint64, flags uint32) uint... method releaseFileHandle (line 254) | func (v *VFS) releaseFileHandle(ino Ino, fh uint64) { method invalidateDirHandle (line 267) | func (v *VFS) invalidateDirHandle(parent Ino, name string, inode Ino, at... type state (line 284) | type state struct type saveHandle (line 289) | type saveHandle struct method dumpAllHandles (line 299) | func (v *VFS) dumpAllHandles(path string) (err error) { method loadAllHandles (line 371) | func (v *VFS) loadAllHandles(path string) error { FILE: pkg/vfs/helpers.go constant MODE_MASK_R (line 28) | MODE_MASK_R = 4 constant MODE_MASK_W (line 29) | MODE_MASK_W = 2 constant MODE_MASK_X (line 30) | MODE_MASK_X = 1 function strerr (line 33) | func strerr(errno syscall.Errno) string { type smode (line 51) | type smode method String (line 53) | func (mode smode) String() string { type Entry (line 79) | type Entry method String (line 81) | func (entry *Entry) String() string { type LogContext (line 96) | type LogContext interface type logContext (line 101) | type logContext struct method Duration (line 106) | func (ctx *logContext) Duration() time.Duration { function NewLogContext (line 111) | func NewLogContext(ctx meta.Context) LogContext { FILE: pkg/vfs/helpers_test.go type smodeCase (line 26) | type smodeCase struct function TestSmode (line 38) | func TestSmode(t *testing.T) { function TestEntryString (line 47) | func TestEntryString(t *testing.T) { function TestError (line 73) | func TestError(t *testing.T) { FILE: pkg/vfs/internal.go constant minInternalNode (line 38) | minInternalNode = 0x7FFFFFFF00000000 constant logInode (line 39) | logInode = minInternalNode + 1 constant controlInode (line 40) | controlInode = minInternalNode + 2 constant StatsInode (line 41) | StatsInode = minInternalNode + 3 constant ConfigInode (line 42) | ConfigInode = minInternalNode + 4 constant trashInode (line 43) | trashInode = meta.TrashInode method getControlHandle (line 49) | func (v *VFS) getControlHandle(pid uint32) uint64 { method releaseControlHandle (line 61) | func (v *VFS) releaseControlHandle(pid uint32) { type internalNode (line 71) | type internalNode struct function init (line 85) | func init() { function IsSpecialNode (line 106) | func IsSpecialNode(ino Ino) bool { function IsSpecialName (line 110) | func IsSpecialName(name string) bool { function getInternalNode (line 122) | func getInternalNode(ino Ino) *internalNode { function GetInternalNodeByName (line 131) | func GetInternalNodeByName(name string) (Ino, *Attr) { function getInternalNodeByName (line 139) | func getInternalNodeByName(name string) *internalNode { function CollectMetrics (line 151) | func CollectMetrics(registry *prometheus.Registry) []byte { function writeProgress (line 187) | func writeProgress(item1, item2 *uint64, out io.Writer, done chan struct... type obj (line 213) | type obj struct method calcObjects (line 218) | func (v *VFS) calcObjects(id uint64, size, offset, length uint32) []*obj { type InfoResponse (line 251) | type InfoResponse struct type SummaryReponse (line 263) | type SummaryReponse struct type CacheResponse (line 268) | type CacheResponse struct method Add (line 277) | func (resp *CacheResponse) Add(other *CacheResponse) { type chunkSlice (line 287) | type chunkSlice struct type chunkObj (line 292) | type chunkObj struct method handleInternalMsg (line 298) | func (v *VFS) handleInternalMsg(ctx meta.Context, cmd uint32, r *utils.B... FILE: pkg/vfs/reader.go constant NEW (line 44) | NEW = iota constant BUSY (line 45) | BUSY constant REFRESH (line 46) | REFRESH constant BREAK (line 47) | BREAK constant READY (line 48) | READY constant INVALID (line 49) | INVALID constant readSessions (line 52) | readSessions = 2 type sstate (line 56) | type sstate method valid (line 58) | func (m sstate) valid() bool { return m != BREAK && m != INVALID } method String (line 62) | func (m sstate) String() string { type FileReader (line 69) | type FileReader interface type DataReader (line 75) | type DataReader interface type frange (line 81) | type frange struct method String (line 86) | func (r *frange) String() string { return fmt.Sprintf("[%d,%d,... method end (line 87) | func (r *frange) end() uint64 { return r.off + r.len } method contain (line 88) | func (r *frange) contain(p uint64) bool { return r.off < p && p < r.e... method overlap (line 89) | func (r *frange) overlap(a *frange) bool { return a.off < r.end() && r... method include (line 90) | func (r *frange) include(a *frange) bool { return r.off <= a.off && a.... type sliceReader (line 93) | type sliceReader struct method delay (line 109) | func (s *sliceReader) delay(delay time.Duration) { method done (line 113) | func (s *sliceReader) done(err syscall.Errno, delay time.Duration) { method run (line 162) | func (s *sliceReader) run() { method invalidate (line 234) | func (s *sliceReader) invalidate() { method drop (line 251) | func (s *sliceReader) drop() { method delete (line 266) | func (s *sliceReader) delete() { function retry_time (line 155) | func retry_time(trycnt uint32) time.Duration { type session (line 277) | type session struct type fileReader (line 284) | type fileReader struct method GetLength (line 303) | func (f *fileReader) GetLength() uint64 { method newSlice (line 310) | func (f *fileReader) newSlice(block *frange) *sliceReader { method delete (line 336) | func (f *fileReader) delete() { method acquire (line 357) | func (f *fileReader) acquire() { method release (line 363) | func (f *fileReader) release() { method guessSession (line 372) | func (f *fileReader) guessSession(block *frange) int { method checkReadahead (line 419) | func (f *fileReader) checkReadahead(block *frange) int { method need (line 442) | func (f *fileReader) need(block *frange) bool { method cleanupRequests (line 463) | func (f *fileReader) cleanupRequests(block *frange) { method releaseIdleBuffer (line 484) | func (f *fileReader) releaseIdleBuffer() { method splitRange (line 501) | func (f *fileReader) splitRange(block *frange) []uint64 { method readAhead (line 529) | func (f *fileReader) readAhead(block *frange) { method prepareRequests (line 561) | func (f *fileReader) prepareRequests(ranges []uint64) []*req { method shouldStop (line 588) | func (f *fileReader) shouldStop() bool { method waitForIO (line 592) | func (f *fileReader) waitForIO(ctx meta.Context, reqs []*req, buf []by... method Read (line 626) | func (f *fileReader) Read(ctx meta.Context, offset uint64, buf []byte)... method visit (line 675) | func (f *fileReader) visit(fn func(s *sliceReader) bool) { method Close (line 685) | func (f *fileReader) Close(ctx meta.Context) { type req (line 556) | type req struct type dataReader (line 696) | type dataReader struct method readBufferUsed (line 730) | func (r *dataReader) readBufferUsed() int64 { method checkReadBuffer (line 735) | func (r *dataReader) checkReadBuffer() { method Open (line 751) | func (r *dataReader) Open(inode Ino, length uint64) FileReader { method visit (line 767) | func (r *dataReader) visit(inode Ino, fn func(*fileReader)) { method Truncate (line 784) | func (r *dataReader) Truncate(inode Ino, length uint64) { method Invalidate (line 798) | func (r *dataReader) Invalidate(inode Ino, off, length uint64) { method readSlice (line 813) | func (r *dataReader) readSlice(ctx context.Context, s *meta.Slice, pag... method Read (line 840) | func (r *dataReader) Read(ctx context.Context, page *chunk.Page, slice... method readManySlices (line 881) | func (r *dataReader) readManySlices(ctx context.Context, page *chunk.P... function NewDataReader (line 709) | func NewDataReader(conf *Config, m meta.Meta, store chunk.ChunkStore) Da... FILE: pkg/vfs/vfs.go constant rootID (line 43) | rootID = 1 constant maxName (line 44) | maxName = meta.MaxName constant maxSymlink (line 45) | maxSymlink = meta.MaxSymlink constant maxFileSize (line 46) | maxFileSize = meta.ChunkSize << 31 type Port (line 49) | type Port struct type FuseOptions (line 57) | type FuseOptions struct method StripOptions (line 89) | func (o FuseOptions) StripOptions() FuseOptions { type SecurityConfig (line 119) | type SecurityConfig struct type Config (line 124) | type Config struct type AnonymousAccount (line 158) | type AnonymousAccount struct function get_filetype (line 221) | func get_filetype(mode uint16) uint8 { constant O_TMPFILE (line 504) | O_TMPFILE = 020000000 function hasReadPerm (line 689) | func hasReadPerm(flag uint32) bool { constant xattrMaxName (line 1062) | xattrMaxName = 255 constant xattrMaxSize (line 1063) | xattrMaxSize = 65536 constant _SECURITY_CAPABILITY (line 1069) | _SECURITY_CAPABILITY = "security.capability" constant _SECURITY_SELINUX (line 1070) | _SECURITY_SELINUX = "security.selinux" constant _SECURITY_ACL (line 1071) | _SECURITY_ACL = "system.posix_acl_access" constant _SECURITY_ACL_DEFAULT (line 1072) | _SECURITY_ACL_DEFAULT = "system.posix_acl_default" function isXattrEnabled (line 1075) | func isXattrEnabled(conf *Config, name string) bool { type VFS (line 1224) | type VFS struct method Lookup (line 176) | func (v *VFS) Lookup(ctx Context, parent Ino, name string) (entry *met... method GetAttr (line 206) | func (v *VFS) GetAttr(ctx Context, ino Ino, opened uint8) (entry *meta... method Mknod (line 241) | func (v *VFS) Mknod(ctx Context, parent Ino, name string, mode uint16,... method Unlink (line 269) | func (v *VFS) Unlink(ctx Context, parent Ino, name string) (err syscal... method doUnlink (line 273) | func (v *VFS) doUnlink(ctx Context, parent Ino, name string, skipTrash... method Mkdir (line 290) | func (v *VFS) Mkdir(ctx Context, parent Ino, name string, mode uint16,... method Rmdir (line 313) | func (v *VFS) Rmdir(ctx Context, parent Ino, name string) (err syscall... method Symlink (line 326) | func (v *VFS) Symlink(ctx Context, path string, parent Ino, name strin... method Readlink (line 349) | func (v *VFS) Readlink(ctx Context, ino Ino) (path []byte, err syscall... method Rename (line 355) | func (v *VFS) Rename(ctx Context, parent Ino, name string, newparent I... method Link (line 383) | func (v *VFS) Link(ctx Context, ino Ino, newparent Ino, newname string... method Opendir (line 409) | func (v *VFS) Opendir(ctx Context, ino Ino, flags uint32) (fh uint64, ... method UpdateLength (line 429) | func (v *VFS) UpdateLength(inode Ino, attr *meta.Attr) { method Readdir (line 439) | func (v *VFS) Readdir(ctx Context, ino Ino, size uint32, off int, fh u... method UpdateReaddirOffset (line 482) | func (v *VFS) UpdateReaddirOffset(ctx Context, ino Ino, fh uint64, off... method Releasedir (line 494) | func (v *VFS) Releasedir(ctx Context, ino Ino, fh uint64) int { method Create (line 506) | func (v *VFS) Create(ctx Context, parent Ino, name string, mode uint16... method Open (line 549) | func (v *VFS) Open(ctx Context, ino Ino, flags uint32) (entry *meta.En... method Truncate (line 596) | func (v *VFS) Truncate(ctx Context, ino Ino, size int64, fh uint64, at... method ReleaseHandler (line 643) | func (v *VFS) ReleaseHandler(ino Ino, fh uint64) { method Release (line 647) | func (v *VFS) Release(ctx Context, ino Ino, fh uint64) { method Read (line 693) | func (v *VFS) Read(ctx Context, ino Ino, buf []byte, off uint64, fh ui... method Write (line 801) | func (v *VFS) Write(ctx Context, ino Ino, buf []byte, off, fh uint64) ... method Fallocate (line 865) | func (v *VFS) Fallocate(ctx Context, ino Ino, mode uint8, off, size in... method CopyFileRange (line 915) | func (v *VFS) CopyFileRange(ctx Context, nodeIn Ino, fhIn, offIn uint6... method Flush (line 991) | func (v *VFS) Flush(ctx Context, ino Ino, fh uint64, lockOwner uint64)... method Fsync (line 1036) | func (v *VFS) Fsync(ctx Context, ino Ino, datasync int, fh uint64) (er... method SetXattr (line 1087) | func (v *VFS) SetXattr(ctx Context, ino Ino, name string, value []byte... method GetXattr (line 1137) | func (v *VFS) GetXattr(ctx Context, ino Ino, name string, size uint32)... method ListXattr (line 1176) | func (v *VFS) ListXattr(ctx Context, ino Ino, size int) (data []byte, ... method RemoveXattr (line 1189) | func (v *VFS) RemoveXattr(ctx Context, ino Ino, name string) (err sysc... method invalidateAttr (line 1291) | func (v *VFS) invalidateAttr(ino Ino) { method ModifiedSince (line 1297) | func (v *VFS) ModifiedSince(ino Ino, start time.Time) bool { method cleanupModified (line 1304) | func (v *VFS) cleanupModified() { method FlushAll (line 1324) | func (v *VFS) FlushAll(path string) (err error) { function NewVFS (line 1245) | func NewVFS(conf *Config, m meta.Meta, store chunk.ChunkStore, registere... function initVFSMetrics (line 1339) | func initVFSMetrics(v *VFS, writer DataWriter, reader DataReader, regist... function InitMemoryBufferMetrics (line 1355) | func InitMemoryBufferMetrics(writer DataWriter, reader DataReader, regis... function InitMetrics (line 1388) | func InitMetrics(registerer prometheus.Registerer) { function encodeACL (line 1415) | func encodeACL(n *acl.Rule) []byte { function decodeACL (line 1445) | func decodeACL(buff []byte) (*acl.Rule, syscall.Errno) { FILE: pkg/vfs/vfs_test.go function createTestVFS (line 44) | func createTestVFS(applyMetaConfOption func(metaConfig *meta.Config), me... function TestVFSBasic (line 90) | func TestVFSBasic(t *testing.T) { function TestVFSIO (line 199) | func TestVFSIO(t *testing.T) { function TestVFSXattrs (line 364) | func TestVFSXattrs(t *testing.T) { type accessCase (line 453) | type accessCase struct function TestAccessMode (line 460) | func TestAccessMode(t *testing.T) { function assertEqual (line 483) | func assertEqual(t *testing.T, a interface{}, b interface{}) { function TestSetattrStr (line 491) | func TestSetattrStr(t *testing.T) { function TestVFSLocks (line 506) | func TestVFSLocks(t *testing.T) { function TestInternalFile (line 607) | func TestInternalFile(t *testing.T) { function TestReaddirCache (line 877) | func TestReaddirCache(t *testing.T) { function testReaddirCache (line 889) | func testReaddirCache(t *testing.T, metaUri string, typ string, batchNum... function TestVFSReadDirSort (line 987) | func TestVFSReadDirSort(t *testing.T) { function testVFSReadDirSort (line 993) | func testVFSReadDirSort(t *testing.T, metaUri string) { function testReaddirBatch (line 1032) | func testReaddirBatch(t *testing.T, metaUri string, typ string, batchNum... function TestReadDirBatch (line 1095) | func TestReadDirBatch(t *testing.T) { function TestReaddir (line 1107) | func TestReaddir(t *testing.T) { function testReaddir (line 1123) | func testReaddir(t *testing.T, metaUri string, dirNum int, offset int) { FILE: pkg/vfs/vfs_unix.go constant O_ACCMODE (line 35) | O_ACCMODE = syscall.O_ACCMODE constant F_UNLCK (line 36) | F_UNLCK = syscall.F_UNLCK type Statfs (line 38) | type Statfs struct method StatFS (line 45) | func (v *VFS) StatFS(ctx Context, ino Ino) (st *Statfs, err syscall.Errn... function accessTest (line 57) | func accessTest(attr *Attr, mmode uint16, uid uint32, gid uint32) syscal... method Access (line 77) | func (v *VFS) Access(ctx Context, ino Ino, mask int) (err syscall.Errno) { function setattrStr (line 101) | func setattrStr(set int, mode, uid, gid uint32, atime, mtime int64, size... method SetAttr (line 144) | func (v *VFS) SetAttr(ctx Context, ino Ino, set int, fh uint64, mode, ui... type lockType (line 209) | type lockType method String (line 211) | func (l lockType) String() string { method Getlk (line 224) | func (v *VFS) Getlk(ctx Context, ino Ino, fh uint64, owner uint64, start... method Setlk (line 243) | func (v *VFS) Setlk(ctx Context, ino Ino, fh uint64, owner uint64, start... method Flock (line 276) | func (v *VFS) Flock(ctx Context, ino Ino, fh uint64, owner uint64, typ u... method Ioctl (line 316) | func (v *VFS) Ioctl(ctx Context, ino Ino, cmd uint32, arg uint64, bufIn,... FILE: pkg/vfs/vfs_windows.go constant O_ACCMODE (line 26) | O_ACCMODE = uint32(fuse.O_ACCMODE) constant F_UNLCK (line 27) | F_UNLCK = 0x01 method ChFlags (line 29) | func (v *VFS) ChFlags(ctx Context, ino Ino, flags uint8) (err syscall.Er... FILE: pkg/vfs/writer.go constant flushDuration (line 32) | flushDuration = time.Second * 5 type FileWriter (line 35) | type FileWriter interface type DataWriter (line 43) | type DataWriter interface type sliceWriter (line 52) | type sliceWriter struct method prepareID (line 68) | func (s *sliceWriter) prepareID(ctx meta.Context, retry bool) { method markDone (line 97) | func (s *sliceWriter) markDone() { method flushData (line 106) | func (s *sliceWriter) flushData() { method write (line 127) | func (s *sliceWriter) write(ctx meta.Context, off uint32, data []uint8... type chunkWriter (line 153) | type chunkWriter struct method findWritableSlice (line 160) | func (c *chunkWriter) findWritableSlice(pos uint32, size uint32) *slic... method commitThread (line 182) | func (c *chunkWriter) commitThread() { type fileWriter (line 224) | type fileWriter struct method findChunk (line 241) | func (f *fileWriter) findChunk(i uint32) *chunkWriter { method freeChunk (line 251) | func (f *fileWriter) freeChunk(c *chunkWriter) { method writeChunk (line 259) | func (f *fileWriter) writeChunk(ctx meta.Context, indx uint32, off uin... method totalSlices (line 282) | func (f *fileWriter) totalSlices() int { method Write (line 296) | func (f *fileWriter) Write(ctx meta.Context, off uint64, data []byte) ... method updateMtime (line 345) | func (f *fileWriter) updateMtime(t time.Time) { method flush (line 355) | func (f *fileWriter) flush(ctx meta.Context, writeback bool) syscall.E... method Flush (line 405) | func (f *fileWriter) Flush(ctx meta.Context) syscall.Errno { method Close (line 409) | func (f *fileWriter) Close(ctx meta.Context) syscall.Errno { method GetLength (line 414) | func (f *fileWriter) GetLength() uint64 { method Truncate (line 420) | func (f *fileWriter) Truncate(length uint64) { type dataWriter (line 427) | type dataWriter struct method usedBufferSize (line 292) | func (w *dataWriter) usedBufferSize() int64 { method flushAll (line 454) | func (w *dataWriter) flushAll() { method Open (line 484) | func (w *dataWriter) Open(inode Ino, len uint64) FileWriter { method find (line 503) | func (w *dataWriter) find(inode Ino) *fileWriter { method free (line 509) | func (w *dataWriter) free(f *fileWriter) { method Flush (line 518) | func (w *dataWriter) Flush(ctx meta.Context, inode Ino) syscall.Errno { method GetLength (line 526) | func (w *dataWriter) GetLength(inode Ino) uint64 { method Truncate (line 534) | func (w *dataWriter) Truncate(inode Ino, len uint64) { method UpdateMtime (line 541) | func (w *dataWriter) UpdateMtime(inode Ino, mtime time.Time) { method FlushAll (line 548) | func (w *dataWriter) FlushAll() error { function NewDataWriter (line 439) | func NewDataWriter(conf *Config, m meta.Meta, store chunk.ChunkStore, re... FILE: pkg/win/ldap.go constant LDAP_PORT (line 46) | LDAP_PORT = 389 constant LDAP_SUCCESS (line 47) | LDAP_SUCCESS = 0 constant LDAP_OPT_SIGN (line 48) | LDAP_OPT_SIGN = 0x95 constant LDAP_OPT_ENCRYPT (line 49) | LDAP_OPT_ENCRYPT = 0x96 constant LDAP_OPT_ON (line 50) | LDAP_OPT_ON = 1 constant LDAP_SCOPE_BASE (line 51) | LDAP_SCOPE_BASE = 0x00 constant LDAP_SCOPE_ONELEVEL (line 52) | LDAP_SCOPE_ONELEVEL = 0x01 constant LDAP_AUTH_NEGOTIATE (line 53) | LDAP_AUTH_NEGOTIATE = 0x0486 function LdapConnect (line 56) | func LdapConnect(host string) (uintptr, error) { function LdapClose (line 79) | func LdapClose(handle uintptr) { function LdapGetValue (line 83) | func LdapGetValue( function LdapGetDefaultNamingContext (line 141) | func LdapGetDefaultNamingContext(handle uintptr) (string, error) { function LdapGetTrustPosixOffset (line 145) | func LdapGetTrustPosixOffset( FILE: pkg/win/sid.go type LSA_OBJECT_ATTRIBUTES (line 48) | type LSA_OBJECT_ATTRIBUTES struct constant PolicyAccountDomainInformation (line 61) | PolicyAccountDomainInformation = 5 constant PolicyDnsDomainInformation (line 62) | PolicyDnsDomainInformation = 12 constant POLICY_VIEW_LOCAL_INFORMATION (line 66) | POLICY_VIEW_LOCAL_INFORMATION = 0x00000001 constant POLICY_VIEW_AUDIT_INFORMATION (line 67) | POLICY_VIEW_AUDIT_INFORMATION = 0x00000002 constant POLICY_GET_PRIVATE_INFORMATION (line 68) | POLICY_GET_PRIVATE_INFORMATION = 0x00000004 constant POLICY_TRUST_ADMIN (line 69) | POLICY_TRUST_ADMIN = 0x00000008 constant POLICY_CREATE_ACCOUNT (line 70) | POLICY_CREATE_ACCOUNT = 0x00000010 constant POLICY_CREATE_SECRET (line 71) | POLICY_CREATE_SECRET = 0x00000020 constant POLICY_CREATE_PRIVILEGE (line 72) | POLICY_CREATE_PRIVILEGE = 0x00000040 constant POLICY_SET_DEFAULT_QUOTA_LIMITS (line 73) | POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080 constant POLICY_SET_AUDIT_REQUIREMENTS (line 74) | POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100 constant POLICY_AUDIT_LOG_ADMIN (line 75) | POLICY_AUDIT_LOG_ADMIN = 0x00000200 constant POLICY_SERVER_ADMIN (line 76) | POLICY_SERVER_ADMIN = 0x00000400 constant POLICY_LOOKUP_NAMES (line 77) | POLICY_LOOKUP_NAMES = 0x00000800 constant POLICY_NOTIFICATION (line 78) | POLICY_NOTIFICATION = 0x00001000 constant AdministratorUIDFromFUSE (line 82) | AdministratorUIDFromFUSE = 197108 constant AdminstratorsGIDFromFUSE (line 83) | AdminstratorsGIDFromFUSE = 544 constant SystemUIDFromFUSE (line 84) | SystemUIDFromFUSE = 18 type UNICODE_STRING (line 87) | type UNICODE_STRING struct type POLICY_ACCOUNT_DOMAIN_INFO (line 94) | type POLICY_ACCOUNT_DOMAIN_INFO struct type GUID (line 99) | type GUID struct type POLICY_DNS_DOMAIN_INFO (line 107) | type POLICY_DNS_DOMAIN_INFO struct constant DS_DOMAIN_DIRECT_INBOUND (line 116) | DS_DOMAIN_DIRECT_INBOUND = 0x0001 constant DS_DOMAIN_DIRECT_OUTBOUND (line 117) | DS_DOMAIN_DIRECT_OUTBOUND = 0x0002 constant DS_DOMAIN_IN_FOREST (line 118) | DS_DOMAIN_IN_FOREST = 0x0008 type DS_DOMAIN_TRUSTSW (line 121) | type DS_DOMAIN_TRUSTSW struct type trustedDomain (line 132) | type trustedDomain struct function IsRelativeSid (line 139) | func IsRelativeSid(sid1 *windows.SID, sid2 *windows.SID) bool { function initializeTrustPosixOffsets (line 176) | func initializeTrustPosixOffsets() error { function init (line 209) | func init() { function ConvertSidStrToUid (line 317) | func ConvertSidStrToUid(sidStr string) (int, error) { function convertSidToUid (line 329) | func convertSidToUid(sid *windows.SID) int { function GetCurrentUserSID (line 394) | func GetCurrentUserSID() (*windows.SID, error) { function GetCurrentUserPrimaryGroupSID (line 417) | func GetCurrentUserPrimaryGroupSID() (*windows.SID, error) { function GetCurrentUID (line 440) | func GetCurrentUID() int { function GetCurrentGID (line 452) | func GetCurrentGID() int { function GetCurrentGroupName (line 461) | func GetCurrentGroupName() string { function GetSidName (line 469) | func GetSidName(sid *windows.SID, withDomain bool) string { function IsProcessElevated (line 504) | func IsProcessElevated() (bool, error) { FILE: pkg/winfsp/log.go constant RotateAccessLog (line 33) | RotateAccessLog = 300 << 20 method log (line 35) | func (j *juice) log(ctx fs.LogContext, format string, args ...interface{... method flushLog (line 67) | func (fs *juice) flushLog(f *os.File, path string, rotateCount int) { FILE: pkg/winfsp/winfs.go constant invalidFileHandle (line 49) | invalidFileHandle = uint64(0xffffffffffffffff) type handleInfo (line 53) | type handleInfo struct type juice (line 59) | type juice struct method Init (line 84) | func (j *juice) Init() { method newContext (line 90) | func (j *juice) newContext() vfs.LogContext { method Statfs (line 115) | func (j *juice) Statfs(path string, stat *fuse.Statfs_t) int { method Mknod (line 196) | func (j *juice) Mknod(p string, mode uint32, dev uint64) (e int) { method Mkdir (line 213) | func (j *juice) Mkdir(path string, mode uint32) (e int) { method Unlink (line 226) | func (j *juice) Unlink(path string) (e int) { method Rmdir (line 234) | func (j *juice) Rmdir(path string) (e int) { method Symlink (line 241) | func (j *juice) Symlink(target string, newpath string) (e int) { method Readlink (line 255) | func (j *juice) Readlink(path string) (e int, target string) { method Rename (line 274) | func (j *juice) Rename(oldpath string, newpath string) (e int) { method Chmod (line 282) | func (j *juice) Chmod(path string, mode uint32) (e int) { method Chown (line 298) | func (j *juice) Chown(path string, uid uint32, gid uint32) (e int) { method Utimens (line 322) | func (j *juice) Utimens(path string, tmsp []fuse.Timespec) (e int) { method Create (line 339) | func (j *juice) Create(p string, flags int, mode uint32) (e int, fh ui... method Open (line 368) | func (j *juice) Open(path string, flags int) (e int, fh uint64) { method OpenEx (line 378) | func (j *juice) OpenEx(p string, fi *fuse.FileInfo_t) (e int) { method attrToStat (line 424) | func (j *juice) attrToStat(inode Ino, attr *meta.Attr, stat *fuse.Stat... method h2i (line 487) | func (j *juice) h2i(fh *uint64) meta.Ino { method reopen (line 504) | func (j *juice) reopen(p string, fh *uint64) meta.Ino { method getAttrForSpFile (line 517) | func (j *juice) getAttrForSpFile(ctx vfs.LogContext, p string, stat *f... method invalidateAttrCache (line 541) | func (j *juice) invalidateAttrCache(ino meta.Ino) { method getAttrFromCache (line 559) | func (j *juice) getAttrFromCache(fh uint64) (entry *meta.Entry) { method setAttrCache (line 577) | func (j *juice) setAttrCache(fh uint64, attr *meta.Attr) { method getAttr (line 592) | func (j *juice) getAttr(ctx vfs.Context, fh uint64, ino Ino, opened ui... method Getattr (line 607) | func (j *juice) Getattr(p string, stat *fuse.Stat_t, fh uint64) (e int) { method Truncate (line 650) | func (j *juice) Truncate(path string, size int64, fh uint64) (e int) { method Read (line 666) | func (j *juice) Read(path string, buf []byte, off int64, fh uint64) (e... method Write (line 687) | func (j *juice) Write(path string, buff []byte, off int64, fh uint64) ... method Flush (line 710) | func (j *juice) Flush(path string, fh uint64) (e int) { method cleanInoHandlerMap (line 722) | func (j *juice) cleanInoHandlerMap(ino meta.Ino, fh uint64) { method Release (line 736) | func (j *juice) Release(path string, fh uint64) int { method Fsync (line 761) | func (j *juice) Fsync(path string, datasync bool, fh uint64) (e int) { method Opendir (line 774) | func (j *juice) Opendir(path string) (e int, fh uint64) { method Readdir (line 797) | func (j *juice) Readdir(path string, method Releasedir (line 858) | func (j *juice) Releasedir(path string, fh uint64) (e int) { method Chflags (line 874) | func (j *juice) Chflags(path string, flags uint32) (e int) { method Getpath (line 908) | func (j *juice) Getpath(p string, fh uint64) (e int, ret string) { function errorconv (line 135) | func errorconv(err syscall.Errno) int { function fuseFlagToSyscall (line 167) | func fuseFlagToSyscall(flag int) int { function getWinFspVersion (line 960) | func getWinFspVersion() string { function compareWinFspVersion (line 1002) | func compareWinFspVersion(v1, v2 string) int { function Serve (line 1026) | func Serve(v *vfs.VFS, fuseOpt string, asRoot bool, delayCloseSec int, s... constant winfspSecurityDescriptor (line 1169) | winfspSecurityDescriptor = "D:P(A;;RPWPLC;;;WD)" function updateWinFspRegService (line 1171) | func updateWinFspRegService(winfspServiceName string, cmdLine string, al... function isDriveByVolumeName (line 1250) | func isDriveByVolumeName(s string) bool { function getWinFspBinPath (line 1272) | func getWinFspBinPath() string { function checkIfMountProcessReady (line 1299) | func checkIfMountProcessReady(mountpoint string, timeoutSec int) bool { function RunAsSystemService (line 1319) | func RunAsSystemService(name string, mountpoint string, logPath string, ... FILE: sdk/java/libjfs/bridge.go constant defaultInterval (line 38) | defaultInterval = 15 * time.Second constant millisecondsPerSecond (line 39) | millisecondsPerSecond = 1000 type HandlerErrorHandling (line 44) | type HandlerErrorHandling constant ContinueOnError (line 50) | ContinueOnError HandlerErrorHandling = iota constant AbortOnError (line 53) | AbortOnError type Config (line 57) | type Config struct type Bridge (line 88) | type Bridge struct method Run (line 155) | func (b *Bridge) Run(ctx context.Context) { method Push (line 171) | func (b *Bridge) Push() error { type Logger (line 105) | type Logger interface function NewBridge (line 110) | func NewBridge(c *Config) (*Bridge, error) { function writeMetrics (line 207) | func writeMetrics(w io.Writer, mfs []*dto.MetricFamily, useTags bool, pr... function writeMetric (line 241) | func writeMetric(buf *bufio.Writer, m model.Metric, useTags bool) error { function writeTags (line 267) | func writeTags(buf *bufio.Writer, m model.Metric) error { function writeLabels (line 283) | func writeLabels(buf *bufio.Writer, m model.Metric, numLabels int) error { function writeSanitized (line 303) | func writeSanitized(buf *bufio.Writer, s string) error { function replaceInvalidRune (line 324) | func replaceInvalidRune(c rune) rune { FILE: sdk/java/libjfs/bridge_test.go function TestSanitize (line 36) | func TestSanitize(t *testing.T) { function TestWriteSummary (line 66) | func TestWriteSummary(t *testing.T) { function testWriteSummary (line 71) | func testWriteSummary(t *testing.T, useTags bool) { function TestWriteHistogram (line 162) | func TestWriteHistogram(t *testing.T) { function testWriteHistogram (line 167) | func testWriteHistogram(t *testing.T, useTags bool) { function TestToReader (line 244) | func TestToReader(t *testing.T) { function testToReader (line 249) | func testToReader(t *testing.T, useTags bool) { function checkLinesAreEqual (line 296) | func checkLinesAreEqual(w, g string, useTags bool) error { function stringToLines (line 337) | func stringToLines(s string) (lines []string, err error) { function TestPush (line 346) | func TestPush(t *testing.T) { function newMockGraphite (line 408) | func newMockGraphite(port string) (*mockGraphite, error) { type mockGraphite (line 433) | type mockGraphite struct function ExampleBridge (line 440) | func ExampleBridge() { FILE: sdk/java/libjfs/callback.c function jfs_set_callback (line 25) | void jfs_set_callback(LogCallBack *callback) function jfs_callback (line 31) | void jfs_callback(const char *msg) FILE: sdk/java/libjfs/guid.go type pwent (line 27) | type pwent struct type mapping (line 32) | type mapping struct method genGuid (line 55) | func (m *mapping) genGuid(name string) uint32 { method lookupUser (line 66) | func (m *mapping) lookupUser(name string) uint32 { method lookupGroup (line 94) | func (m *mapping) lookupGroup(name string) uint32 { method lookupUserID (line 122) | func (m *mapping) lookupUserID(id uint32) string { method lookupGroupID (line 144) | func (m *mapping) lookupGroupID(id uint32) string { method update (line 166) | func (m *mapping) update(uids []pwent, gids []pwent, local bool) { method updateUser (line 182) | func (m *mapping) updateUser(name string, id uint32) { method updateGroup (line 191) | func (m *mapping) updateGroup(name string, id uint32) { function newMapping (line 43) | func newMapping(salt string) *mapping { FILE: sdk/java/libjfs/guid_unix.go function genAllUids (line 32) | func genAllUids() []pwent { function genAllGids (line 51) | func genAllGids() []pwent { FILE: sdk/java/libjfs/guid_windows.go function genAllUids (line 25) | func genAllUids() []pwent { function genAllGids (line 82) | func genAllGids() []pwent { FILE: sdk/java/libjfs/kerberos.go constant defaultLife (line 43) | defaultLife = 3600 * 24 * 7 constant defaultRenew (line 44) | defaultRenew = 3600 * 24 constant mechanismHadoop (line 48) | mechanismHadoop = "hadoop" constant mechanismMIT (line 49) | mechanismMIT = "mit" type kRule (line 59) | type kRule struct method String (line 70) | func (r *kRule) String() string { method replaceParameters (line 90) | func (r *kRule) replaceParameters(params []string) string { method replaceSubs (line 102) | func (r *kRule) replaceSubs(base string) string { method apply (line 116) | func (r *kRule) apply(param []string, mechanism string, realm string) ... function parseRule (line 137) | func parseRule(rule string) *kRule { type kerberosRules (line 166) | type kerberosRules struct method getShortName (line 183) | func (r *kerberosRules) getShortName(full string) string { function newkerberosRules (line 172) | func newkerberosRules(mechanism string, realm string, rules []string) *k... function parseFullName (line 209) | func parseFullName(full string) (string, string, string) { type token (line 217) | type token struct type hostParam (line 225) | type hostParam struct type proxyParam (line 230) | type proxyParam struct type volParams (line 236) | type volParams struct method parse (line 247) | func (vol *volParams) parse(kind, key, value string) { method canProxy (line 342) | func (vol *volParams) canProxy(realUser, user, group, ips, hostname st... method isUserGroupAllowed (line 357) | func (vol *volParams) isUserGroupAllowed(realUser, user, groups string... method isHostAllowed (line 377) | func (vol *volParams) isHostAllowed(realUser, ips, hostname string) bo... type kerberos (line 402) | type kerberos struct method getVol (line 407) | func (k *kerberos) getVol(volname string) *volParams { method auth (line 413) | func (k *kerberos) auth(volname, user, realUser, group, ips, hostname ... method issue (line 461) | func (k *kerberos) issue(ctx meta.Context, m meta.Meta, volname, user,... method check (line 483) | func (k *kerberos) check(ctx meta.Context, m meta.Meta, volname, user ... method renew (line 500) | func (k *kerberos) renew(ctx meta.Context, m meta.Meta, volname, renew... method storeToken (line 522) | func (k *kerberos) storeToken(ctx meta.Context, m meta.Meta, t *token)... method updateToken (line 531) | func (k *kerberos) updateToken(ctx meta.Context, m meta.Meta, id uint3... method loadToken (line 540) | func (k *kerberos) loadToken(ctx meta.Context, m meta.Meta, id uint32)... method cancelToken (line 554) | func (k *kerberos) cancelToken(ctx meta.Context, m meta.Meta, user str... method cleanupTokens (line 565) | func (k *kerberos) cleanupTokens() { method loadConf (line 602) | func (k *kerberos) loadConf(name, content string, jfs *fs.FileSystem) { method init (line 646) | func (k *kerberos) init() int { FILE: sdk/java/libjfs/main.go constant CALLER_JAVA (line 112) | CALLER_JAVA = iota constant CALLER_PYTHON (line 113) | CALLER_PYTHON constant BEHAVIOR_HADOOP (line 117) | BEHAVIOR_HADOOP = "Hadoop" constant EPERM (line 121) | EPERM = -0x01 constant ENOENT (line 122) | ENOENT = -0x02 constant EINTR (line 123) | EINTR = -0x04 constant EIO (line 124) | EIO = -0x05 constant EACCES (line 125) | EACCES = -0x0d constant EEXIST (line 126) | EEXIST = -0x11 constant ENOTDIR (line 127) | ENOTDIR = -0x14 constant EISDIR (line 128) | EISDIR = -0x15 constant EINVAL (line 129) | EINVAL = -0x16 constant ENOSPC (line 130) | ENOSPC = -0x1c constant EDQUOT (line 131) | EDQUOT = -0x45 constant EROFS (line 132) | EROFS = -0x1e constant ENOTEMPTY (line 133) | ENOTEMPTY = -0x27 constant ENODATA (line 134) | ENODATA = -0x3d constant ENOTSUP (line 135) | ENOTSUP = -0x5f function errno (line 138) | func errno(err error) int32 { type fsKey (line 187) | type fsKey struct type wrapper (line 192) | type wrapper struct method withPid (line 241) | func (w *wrapper) withPid(pid int64) meta.Context { method getSuperUser (line 250) | func (w *wrapper) getSuperUser() string { method getSuperGroup (line 257) | func (w *wrapper) getSuperGroup() string { method isSuperuser (line 264) | func (w *wrapper) isSuperuser(name string, groups []string) bool { method lookupUid (line 277) | func (w *wrapper) lookupUid(name string) uint32 { method lookupGid (line 284) | func (w *wrapper) lookupGid(group string) uint32 { method lookupGids (line 291) | func (w *wrapper) lookupGids(groups []string) []uint32 { method uid2name (line 299) | func (w *wrapper) uid2name(uid uint32) string { method gid2name (line 307) | func (w *wrapper) gid2name(gid uint32) string { type logWriter (line 203) | type logWriter struct method Write (line 207) | func (w *logWriter) Write(p []byte) (int, error) { function newLogWriter (line 217) | func newLogWriter() *logWriter { function jfs_set_logger (line 232) | func jfs_set_logger(cb unsafe.Pointer) { type fwrapper (line 315) | type fwrapper struct function nextFileHandle (line 320) | func nextFileHandle(f *fs.File, w *wrapper) int32 { function freeHandle (line 332) | func freeHandle(fd int32) { type javaConf (line 341) | type javaConf struct function cleanConf (line 399) | func cleanConf(conf javaConf) javaConf { function getOrCreate (line 406) | func getOrCreate(name, user, groups, superuser, supergroup string, conf ... function updateAllCtx (line 445) | func updateAllCtx(name string, user, groups string) { function push2Gateway (line 467) | func push2Gateway(pushGatewayAddr, pushAuth string, pushInterVal time.Du... function push2RemoteWrite (line 494) | func push2RemoteWrite(remoteWrite string, pushRemoteWriteAuth string, pu... function push2Graphite (line 524) | func push2Graphite(graphite string, pushInterVal time.Duration, registry... function jfs_init (line 553) | func jfs_init(credentialPtr uintptr, count int32, cname, cjsonConf, cuse... function F (line 790) | func F(p int64) *wrapper { function jfs_update_uid_grouping (line 797) | func jfs_update_uid_grouping(cname, uidstr *C.char, grouping *C.char) { function updateCtx (line 861) | func updateCtx(w *wrapper, groups []string) { function jfs_getGroups (line 877) | func jfs_getGroups(cname, cuser *C.char, buf uintptr, count int32) int32 { function jfs_is_superuser (line 895) | func jfs_is_superuser(h int64, user *C.char, groups *C.char) int32 { function jfs_term (line 908) | func jfs_term(pid int64, h int64) int32 { function jfs_open (line 971) | func jfs_open(pid int64, h int64, cpath *C.char, lenPtr uintptr, flags i... function jfs_open_posix (line 994) | func jfs_open_posix(pid int64, h int64, cpath *C.char, lenPtr uintptr, f... function jfs_access (line 1017) | func jfs_access(pid int64, h int64, cpath *C.char, flags int64) int32 { function jfs_create (line 1026) | func jfs_create(pid int64, h int64, cpath *C.char, mode uint16, umask ui... function jfs_mkdir (line 1044) | func jfs_mkdir(pid int64, h int64, cpath *C.char, mode uint16, umask uin... function jfs_mkdirAll (line 1058) | func jfs_mkdirAll(pid int64, h int64, cpath *C.char, mode, umask uint16,... function jfs_delete (line 1075) | func jfs_delete(pid int64, h int64, cpath *C.char) int32 { function jfs_unlink (line 1084) | func jfs_unlink(pid int64, h int64, cpath *C.char) int32 { function jfs_rmdir (line 1093) | func jfs_rmdir(pid int64, h int64, cpath *C.char) int32 { function jfs_rmr (line 1102) | func jfs_rmr(pid int64, h int64, cpath *C.char) int32 { function jfs_rename (line 1111) | func jfs_rename(pid int64, h int64, oldpath *C.char, newpath *C.char) in... function jfs_rename0 (line 1116) | func jfs_rename0(pid int64, h int64, oldpath *C.char, newpath *C.char, f... function jfs_truncate (line 1125) | func jfs_truncate(pid int64, h int64, path *C.char, length uint64) int32 { function jfs_setXattr (line 1134) | func jfs_setXattr(pid int64, h int64, path *C.char, name *C.char, value ... function jfs_setXattr2 (line 1150) | func jfs_setXattr2(pid int64, h int64, path *C.char, name *C.char, value... function jfs_getXattr (line 1166) | func jfs_getXattr(pid int64, h int64, path *C.char, name *C.char, buf ui... function jfs_getXattr2 (line 1183) | func jfs_getXattr2(pid int64, h int64, path *C.char, name *C.char, value... function jfs_listXattr (line 1196) | func jfs_listXattr(pid int64, h int64, path *C.char, buf uintptr, bufsiz... function jfs_listXattr2 (line 1213) | func jfs_listXattr2(pid int64, h int64, path *C.char, value **C.char, si... function jfs_removeXattr (line 1227) | func jfs_removeXattr(pid int64, h int64, path *C.char, name *C.char) int... function jfs_getfacl (line 1236) | func jfs_getfacl(pid int64, h int64, path *C.char, acltype int32, buf ui... function jfs_setfacl (line 1272) | func jfs_setfacl(pid int64, h int64, path *C.char, acltype int32, buf ui... function jfs_link (line 1301) | func jfs_link(pid int64, h int64, src *C.char, dst *C.char) int32 { function jfs_symlink (line 1310) | func jfs_symlink(pid int64, h int64, target_ *C.char, link_ *C.char) int... function jfs_readlink (line 1327) | func jfs_readlink(pid int64, h int64, link *C.char, buf uintptr, bufsize... function fill_stat (line 1346) | func fill_stat(w *wrapper, wb *utils.Buffer, st *fs.FileStat) int32 { function jfs_stat1 (line 1361) | func jfs_stat1(pid int64, h int64, cpath *C.char, buf uintptr) int32 { function jfs_lstat1 (line 1374) | func jfs_lstat1(pid int64, h int64, cpath *C.char, buf uintptr) int32 { function attrToInfo (line 1386) | func attrToInfo(fi *fs.FileStat, info *C.fileInfo) { function jfs_stat (line 1399) | func jfs_stat(pid int64, h int64, cpath *C.char, info *C.fileInfo) int32 { function jfs_lstat (line 1414) | func jfs_lstat(pid int64, h int64, cpath *C.char, info *C.fileInfo) int32 { function jfs_summary (line 1429) | func jfs_summary(pid int64, h int64, cpath *C.char, buf uintptr) int32 { function jfs_info (line 1462) | func jfs_info(pid int64, h int64, cpath *C.char, p_buf **byte, recursive... function jfs_gettreesummary (line 1492) | func jfs_gettreesummary(pid, h int64, cpath *C.char, depth, entries uint... function jfs_quota (line 1521) | func jfs_quota(pid int64, h int64, cpath *C.char, cmd uint8, cap, inodes... function jfs_statvfs (line 1545) | func jfs_statvfs(pid int64, h int64, buf uintptr) int32 { function jfs_chmod (line 1558) | func jfs_chmod(pid int64, h int64, cpath *C.char, mode C.mode_t) int32 { function jfs_chown (line 1572) | func jfs_chown(pid int64, h int64, cpath *C.char, uid uint32, gid uint32... function jfs_utime (line 1585) | func jfs_utime(pid int64, h int64, cpath *C.char, mtime, atime int64) in... function jfs_setOwner (line 1599) | func jfs_setOwner(pid int64, h int64, cpath *C.char, owner *C.char, grou... function setOwner (line 1607) | func setOwner(w *wrapper, ctx meta.Context, path string, owner, group st... function jfs_listdir (line 1626) | func jfs_listdir(pid int64, h int64, cpath *C.char, offset int64, buf ui... function jfs_listdir2 (line 1680) | func jfs_listdir2(pid int64, h int64, cpath *C.char, plus bool, buf **by... function toBuf (line 1740) | func toBuf(s uintptr, sz int32) []byte { function jfs_concat (line 1745) | func jfs_concat(pid int64, h int64, _dst *C.char, buf uintptr, bufsize i... function jfs_clone (line 1802) | func jfs_clone(pid int64, h int64, _src *C.char, _dst *C.char, preserve ... function jfs_status (line 1815) | func jfs_status(pid int64, h int64, trash bool, session uint64, p_buf **... function jfs_lseek (line 1855) | func jfs_lseek(pid int64, fd int32, offset int64, whence int64) int64 { function jfs_read (line 1868) | func jfs_read(pid int64, fd int32, cbuf uintptr, count int32) int32 { function jfs_pread (line 1886) | func jfs_pread(pid int64, fd int32, cbuf uintptr, count int32, offset in... function jfs_write (line 1907) | func jfs_write(pid int64, fd int32, cbuf uintptr, count int32) int32 { function jfs_pwrite (line 1926) | func jfs_pwrite(pid int64, fd int32, cbuf uintptr, count int32, offset i... function jfs_ftruncate (line 1945) | func jfs_ftruncate(pid int64, fd int32, size uint64) int32 { function jfs_flush (line 1956) | func jfs_flush(pid int64, fd int32) int32 { function jfs_fsync (line 1969) | func jfs_fsync(pid int64, fd int32) int32 { function jfs_ranger_cfg (line 1982) | func jfs_ranger_cfg(cname *C.char, buf uintptr, count int32) int32 { function jfs_close (line 2000) | func jfs_close(pid int64, fd int32) int32 { function jfs_warmup (line 2012) | func jfs_warmup(pid int64, h int64, _paths *C.char, numthreads int32, ba... function resolve (line 2039) | func resolve(hostname string) string { function findLocalIP (line 2057) | func findLocalIP(mask string, iname string) (string, error) { function jfs_get_token (line 2104) | func jfs_get_token(h int64, cname *C.char, buf uintptr, count int32, ren... function jfs_renew_token (line 2123) | func jfs_renew_token(h int64, id uint32, password *C.char) int64 { function jfs_cancel_token (line 2137) | func jfs_cancel_token(h int64, id uint32, password *C.char) int32 { function main (line 2145) | func main() { FILE: sdk/java/libjfs/remote_write.go constant defaultRemoteWriteTimeout (line 37) | defaultRemoteWriteTimeout = 15 * time.Second type RemoteWriteConfig (line 41) | type RemoteWriteConfig struct type RemoteWriter (line 68) | type RemoteWriter struct method Push (line 122) | func (rw *RemoteWriter) Push() error { method ConvertMetricsToTimeSeries (line 198) | func (rw *RemoteWriter) ConvertMetricsToTimeSeries(mfs []*dto.MetricFa... function NewRemoteWriter (line 81) | func NewRemoteWriter(c *RemoteWriteConfig) (*RemoteWriter, error) { FILE: sdk/java/libjfs/remote_write_test.go type mockLogger (line 32) | type mockLogger struct method Println (line 36) | func (m *mockLogger) Println(v ...interface{}) { method Warnf (line 40) | func (m *mockLogger) Warnf(format string, args ...interface{}) { function TestNewRemoteWriter (line 44) | func TestNewRemoteWriter(t *testing.T) { function TestRemoteWriter_convertMetricsToTimeSeries (line 115) | func TestRemoteWriter_convertMetricsToTimeSeries(t *testing.T) { function TestRemoteWriter_Push (line 220) | func TestRemoteWriter_Push(t *testing.T) { function TestRemoteWriter_PushWithAuth (line 313) | func TestRemoteWriter_PushWithAuth(t *testing.T) { FILE: sdk/java/src/main/java/io/juicefs/FlinkFileSystemFactory.java class FlinkFileSystemFactory (line 27) | public class FlinkFileSystemFactory implements org.apache.flink.core.fs.... method configure (line 34) | @Override method getScheme (line 54) | @Override method create (line 62) | @Override FILE: sdk/java/src/main/java/io/juicefs/JuiceFS.java class JuiceFS (line 26) | public class JuiceFS extends DelegateToFileSystem { method JuiceFS (line 27) | JuiceFS(final URI uri, final Configuration conf) throws IOException, U... method getUriDefaultPort (line 31) | @Override FILE: sdk/java/src/main/java/io/juicefs/JuiceFileSystem.java class JuiceFileSystem (line 39) | @InterfaceAudience.Public method patchDistCpChecksum (line 56) | private synchronized static void patchDistCpChecksum() { method initialize (line 66) | @Override method runTrashEmptier (line 78) | private void runTrashEmptier(URI uri, final Configuration conf) { method getConf (line 94) | private String getConf(Configuration conf, String key, String value) { method JuiceFileSystem (line 105) | public JuiceFileSystem() { method getScheme (line 109) | @Override method create (line 119) | public FSDataOutputStream create(Path f, boolean overwrite, int buffer... method createNonRecursive (line 123) | public FSDataOutputStream createNonRecursive(Path f, boolean overwrite... method getContentSummary (line 127) | @Override method isFileClosed (line 132) | public boolean isFileClosed(final Path src) throws IOException { method getFileChecksum (line 137) | @Override method getFileChecksum (line 145) | @Override method getDelegationToken (line 153) | public Token getDelegationToken(String renewer) throws IOException { FILE: sdk/java/src/main/java/io/juicefs/JuiceFileSystemImpl.java class JuiceFileSystemImpl (line 85) | @InterfaceAudience.Public method loadVersion (line 92) | static String loadVersion() { type Libjfs (line 156) | public static interface Libjfs { method jfs_init (line 157) | long jfs_init(Pointer credential, int size, String name, String json... method jfs_update_uid_grouping (line 159) | void jfs_update_uid_grouping(String name, String uidstr, String grou... method jfs_term (line 161) | int jfs_term(long pid, long h); method jfs_open (line 163) | int jfs_open(long pid, long h, String path, @Out ByteBuffer fileLen,... method jfs_access (line 165) | int jfs_access(long pid, long h, String path, int flags); method jfs_lseek (line 167) | long jfs_lseek(long pid, int fd, long pos, int whence); method jfs_pread (line 169) | int jfs_pread(long pid, int fd, @Out ByteBuffer b, int len, long off... method jfs_write (line 171) | int jfs_write(long pid, int fd, @In ByteBuffer b, int len); method jfs_flush (line 173) | int jfs_flush(long pid, int fd); method jfs_fsync (line 175) | int jfs_fsync(long pid, int fd); method jfs_close (line 177) | int jfs_close(long pid, int fd); method jfs_create (line 179) | int jfs_create(long pid, long h, String path, short mode, short umask); method jfs_truncate (line 181) | int jfs_truncate(long pid, long h, String path, long length); method jfs_delete (line 183) | int jfs_delete(long pid, long h, String path); method jfs_rmr (line 185) | int jfs_rmr(long pid, long h, String path); method jfs_mkdir (line 187) | int jfs_mkdir(long pid, long h, String path, short mode, short umask); method jfs_rename (line 189) | int jfs_rename(long pid, long h, String src, String dst); method jfs_stat1 (line 191) | int jfs_stat1(long pid, long h, String path, Pointer buf); method jfs_lstat1 (line 193) | int jfs_lstat1(long pid, long h, String path, Pointer buf); method jfs_summary (line 195) | int jfs_summary(long pid, long h, String path, Pointer buf); method jfs_statvfs (line 197) | int jfs_statvfs(long pid, long h, Pointer buf); method jfs_chmod (line 199) | int jfs_chmod(long pid, long h, String path, int mode); method jfs_setOwner (line 201) | int jfs_setOwner(long pid, long h, String path, String user, String ... method jfs_utime (line 203) | int jfs_utime(long pid, long h, String path, long mtime, long atime); method jfs_listdir (line 205) | int jfs_listdir(long pid, long h, String path, int offset, Pointer b... method jfs_concat (line 207) | int jfs_concat(long pid, long h, String path, Pointer buf, int bufsi... method jfs_setXattr (line 209) | int jfs_setXattr(long pid, long h, String path, String name, Pointer... method jfs_getXattr (line 211) | int jfs_getXattr(long pid, long h, String path, String name, Pointer... method jfs_listXattr (line 213) | int jfs_listXattr(long pid, long h, String path, Pointer buf, int si... method jfs_removeXattr (line 215) | int jfs_removeXattr(long pid, long h, String path, String name); method jfs_getfacl (line 217) | int jfs_getfacl(long pid, long h, String path, int acltype, Pointer ... method jfs_setfacl (line 219) | int jfs_setfacl(long pid, long h, String path, int acltype, Pointer ... method jfs_getGroups (line 221) | int jfs_getGroups(String volName, String user, Pointer buf, int len); method jfs_ranger_cfg (line 223) | int jfs_ranger_cfg(String volName, Pointer buf, int size); method jfs_is_superuser (line 225) | int jfs_is_superuser(long h, String user, String group); method jfs_set_callback (line 227) | void jfs_set_callback(LogCallBack callBack); method jfs_get_token (line 229) | int jfs_get_token(long h, String name, Pointer buf, int bufSize, Str... method jfs_renew_token (line 231) | long jfs_renew_token(long h, int id, String password); method jfs_cancel_token (line 233) | int jfs_cancel_token(long h, int id, String password); type LogCallBack (line 235) | interface LogCallBack { method call (line 236) | @Delegate class LogCallBackImpl (line 241) | static class LogCallBackImpl implements Libjfs.LogCallBack { method LogCallBackImpl (line 244) | public LogCallBackImpl(Libjfs lib) { method call (line 248) | @Override method finalize (line 273) | @Override method error (line 299) | private IOException error(int errno, Path p) { method JuiceFileSystemImpl (line 342) | public JuiceFileSystemImpl() { method getDefaultBlockSize (line 346) | @Override method normalizePath (line 351) | private String normalizePath(Path path) { method getScheme (line 355) | @Override method toString (line 360) | @Override method getUri (line 365) | @Override method getConf (line 370) | private String getConf(Configuration conf, String key, String value) { method initialize (line 380) | @Override method checkAndGetRangerParams (line 590) | public RangerConfig checkAndGetRangerParams(Configuration conf) throws... method JuiceFileSystemImpl (line 626) | public JuiceFileSystemImpl(boolean isSuperGroupFileSystem) { method getGroups (line 630) | private Set getGroups() { method isSuperUser (line 652) | private boolean isSuperUser() throws IOException { method needCheckPermission (line 660) | private boolean needCheckPermission() throws IOException { method checkPathAccess (line 664) | private boolean checkPathAccess(Path path, FsAction action, String ope... method checkParentPathAccess (line 668) | private boolean checkParentPathAccess(Path path, FsAction action, Stri... method checkAncestorAccess (line 672) | private boolean checkAncestorAccess(Path path, FsAction action, String... method checkOwner (line 676) | private boolean checkOwner(Path path, String operation) throws IOExcep... method isEmpty (line 680) | private boolean isEmpty(String str) { method readFile (line 684) | private String readFile(String file) throws IOException { method parseUidAndGrouping (line 703) | private String parseUidAndGrouping(String pattern, String input) { method updateUidAndGrouping (line 719) | private void updateUidAndGrouping(String uidFile, String groupFile) th... method initializeStorageIds (line 732) | private void initializeStorageIds(Configuration conf) throws IOExcepti... method getHomeDirectory (line 749) | @Override method initStubLoader (line 754) | private static void initStubLoader() { method loadLibrary (line 789) | public static Libjfs loadLibrary() { method loadExistLib (line 897) | private static Libjfs loadExistLib(LibraryLoader libjfsLibrary... method initCache (line 906) | private void initCache() { method discoverNodes (line 930) | private List discoverNodes(String urls) { method makeLocation (line 943) | private BlockLocation makeLocation(long code, long start, long len) { method getStorageIds (line 970) | private String[] getStorageIds() { method setStorageId (line 978) | private void setStorageId(BlockLocation bl) { method getFileBlockLocations (line 988) | @Override class FileInputStream (line 1051) | class FileInputStream extends FSInputStream implements ByteBufferReada... method FileInputStream (line 1059) | public FileInputStream(Path f, int fd, int size, long fileLen) throw... method getPos (line 1068) | @Override method seekToNewSource (line 1075) | @Override method available (line 1080) | @Override method markSupported (line 1091) | @Override method read (line 1096) | @Override method read (line 1107) | @Override method refill (line 1114) | private boolean refill() throws IOException { method read (line 1127) | @Override method read (line 1137) | @Override method read (line 1164) | private synchronized int read(long pos, ByteBuffer b) throws IOExcep... method seek (line 1182) | @Override method skipNBytes (line 1198) | public synchronized void skipNBytes(long n) throws IOException { method skip (line 1213) | @Override method close (line 1227) | @Override method open (line 1241) | @Override method access (line 1257) | @Override class FSOutputStream (line 1271) | class FSOutputStream extends OutputStream { method FSOutputStream (line 1275) | private FSOutputStream(int fd, Path p) throws IOException { method close (line 1280) | @Override method flush (line 1287) | @Override method hflush (line 1291) | public void hflush() throws IOException { method fsync (line 1299) | public void fsync() throws IOException { method write (line 1307) | @Override method write (line 1322) | @Override class BufferedFSOutputStream (line 1334) | static class BufferedFSOutputStream extends BufferedOutputStream imple... method BufferedFSOutputStream (line 1338) | public BufferedFSOutputStream(OutputStream out) { method BufferedFSOutputStream (line 1343) | public BufferedFSOutputStream(OutputStream out, int size, String hfl... method sync (line 1348) | public void sync() throws IOException { method write (line 1352) | @Override method write (line 1360) | @Override method flush (line 1368) | @Override method hflush (line 1376) | @Override method hsync (line 1391) | @Override method close (line 1400) | @Override method getOutputStream (line 1409) | public OutputStream getOutputStream() { class BufferedFSOutputStreamWithStreamCapabilities (line 1414) | static class BufferedFSOutputStreamWithStreamCapabilities extends Buff... method BufferedFSOutputStreamWithStreamCapabilities (line 1416) | public BufferedFSOutputStreamWithStreamCapabilities(OutputStream out) { method BufferedFSOutputStreamWithStreamCapabilities (line 1420) | public BufferedFSOutputStreamWithStreamCapabilities(OutputStream out... method hasCapability (line 1424) | @Override method append (line 1430) | @Override method create (line 1445) | @Override method checkBufferSize (line 1480) | private int checkBufferSize(int size) { method createNonRecursive (line 1487) | @Override method createFsDataOutputStream (line 1512) | private FSDataOutputStream createFsDataOutputStream(Path f, int buffer... method getFileChecksum (line 1527) | @Override method concat (line 1590) | @Override method rename (line 1639) | @Override method truncate (line 1684) | @Override method rmr (line 1695) | private boolean rmr(Path p) throws IOException { method delete (line 1706) | @Override method getContentSummary (line 1732) | @Override method newFileStatus (line 1754) | private FileStatus newFileStatus(Path p, Pointer buf, int size, boolea... method listStatus (line 1779) | @Override method setWorkingDirectory (line 1834) | @Override method getWorkingDirectory (line 1840) | @Override method mkdirs (line 1845) | @Override method getFileStatus (line 1869) | @Override method getFileStatusInternal (line 1882) | private FileStatus getFileStatusInternal(final Path f, boolean derefer... method getFileStatusInternalNoException (line 1897) | private FileStatus getFileStatusInternalNoException(final Path f) thro... method supportsSymlinks (line 1907) | @Override method getStatus (line 1912) | @Override method setPermission (line 1927) | @Override method setOwner (line 1939) | @Override method setTimes (line 1959) | @Override method close (line 1972) | @Override method setXAttr (line 1988) | @Override method getXAttr (line 2010) | @Override method getXAttrs (line 2032) | @Override method getXAttrs (line 2037) | @Override method listXAttrs (line 2052) | @Override method removeXAttr (line 2081) | @Override method modifyAclEntries (line 2095) | @Override method removeAclEntries (line 2106) | @Override method setAcl (line 2117) | @Override method setAclInternal (line 2128) | private void setAclInternal(Path path, List aclSpec) throws ... method removeAclInternal (line 2135) | private void removeAclInternal(Path path, AclEntryScope scope) throws ... method removeDefaultAcl (line 2151) | @Override method removeAcl (line 2160) | @Override method setAclInternal (line 2170) | private void setAclInternal(Path path, AclEntryScope scope, List getAclEntries(Path path, AclEntryScope scope) t... method getAllAclEntries (line 2296) | private List getAllAclEntries(Path path) throws IOException { method getAclEntries (line 2309) | private List getAclEntries(Path path) throws IOException { method getAclStatus (line 2320) | @Override method buildAuthCredential (line 2339) | public AuthCredential buildAuthCredential(String spn) throws IOExcepti... method buildServiceName (line 2373) | private String buildServiceName() { method getCanonicalServiceName (line 2377) | @Override method getDelegationToken (line 2382) | @Override method renewToken (line 2422) | public long renewToken(Token token) throws IOException { method cancelToken (line 2436) | public void cancelToken(Token token) throws IOException { FILE: sdk/java/src/main/java/io/juicefs/KiteDataLoader.java class KiteDataLoader (line 31) | public class KiteDataLoader implements Loadable { class URIBuilder (line 32) | private static class URIBuilder implements OptionBuilder match) { FILE: sdk/java/src/main/java/io/juicefs/Main.java class Main (line 30) | public class Main { class Command (line 36) | public abstract static class Command implements Closeable { method Command (line 40) | public Command() { method init (line 44) | public abstract void init() throws IOException; method run (line 46) | public abstract void run() throws IOException; method getCommand (line 48) | public abstract String getCommand(); method main (line 52) | public static void main(String[] args) throws ParseException, IOExcept... FILE: sdk/java/src/main/java/io/juicefs/bench/AccumulatingReducer.java class AccumulatingReducer (line 46) | @SuppressWarnings("deprecation") method AccumulatingReducer (line 56) | public AccumulatingReducer() { method reduce (line 65) | @Override FILE: sdk/java/src/main/java/io/juicefs/bench/IOMapperBase.java class IOMapperBase (line 41) | public abstract class IOMapperBase extends Configured method IOMapperBase (line 51) | public IOMapperBase() { method configure (line 54) | @Override method close (line 72) | @Override method doIO (line 77) | abstract Long doIO(Reporter reporter, method getIOStream (line 82) | public Closeable getIOStream(String name) throws IOException { method collectStats (line 86) | abstract void collectStats(OutputCollector output, method map (line 91) | @Override FILE: sdk/java/src/main/java/io/juicefs/bench/NNBench.java class NNBench (line 49) | @Parameters(commandDescription = "Distributed create/open/rename/delete ... method cleanupBeforeTestrun (line 94) | private void cleanupBeforeTestrun() throws IOException { method createControlFiles (line 112) | private void createControlFiles() throws IOException { method analyzeResults (line 139) | private void analyzeResults() throws IOException { method runTests (line 241) | public void runTests() throws IOException { method validateInputs (line 268) | public void validateInputs() { method init (line 298) | @Override method run (line 326) | @Override method localRun (line 339) | private void localRun() { method getCommand (line 393) | @Override method close (line 398) | @Override class NNBenchMapper (line 406) | static class NNBenchMapper extends Configured method NNBenchMapper (line 426) | public NNBenchMapper() { method configure (line 433) | public void configure(JobConf conf) { method close (line 459) | public void close() throws IOException { method barrier (line 471) | private boolean barrier() { method map (line 498) | public void map(Text key, class Entry (line 534) | static class Entry { method Entry (line 538) | Entry(Text key, Text value) { method doMap (line 544) | private void doMap(List res, long mapId, int threadNum) throw... method doCreate (line 585) | private void doCreate(long mapId, method doOpen (line 616) | private void doOpen(long mapId, method doRenameOp (line 646) | private void doRenameOp(long mapId, method doDeleteOp (line 675) | private void doDeleteOp(long mapId, class NNBenchReducer (line 709) | static class NNBenchReducer extends MapReduceBase method NNBenchReducer (line 714) | public NNBenchReducer() { method reduce (line 727) | public void reduce(Text key, FILE: sdk/java/src/main/java/io/juicefs/bench/TestDFSIO.java class TestDFSIO (line 48) | @Parameters(commandDescription = "Distributed i/o benchmark") method close (line 90) | @Override type TestType (line 95) | private enum TestType { method TestType (line 107) | TestType(String t) { method toString (line 111) | @Override // String type ByteMultiple (line 117) | static enum ByteMultiple { method ByteMultiple (line 126) | private ByteMultiple(long mult) { method value (line 130) | long value() { method parseString (line 134) | static ByteMultiple parseString(String sMultiple) { method TestDFSIO (line 159) | public TestDFSIO() { method init (line 163) | @Override method checkArgs (line 232) | private void checkArgs() { method localRun (line 251) | private void localRun(TestType testType) throws IOException { method run (line 324) | @Override method getCommand (line 360) | @Override method getBaseDir (line 365) | private String getBaseDir(Configuration conf) { method getControlDir (line 369) | private Path getControlDir(Configuration conf) { method getWriteDir (line 373) | private Path getWriteDir(Configuration conf) { method getReadDir (line 377) | private Path getReadDir(Configuration conf) { method getAppendDir (line 381) | private Path getAppendDir(Configuration conf) { method getRandomReadDir (line 385) | private Path getRandomReadDir(Configuration conf) { method getTruncateDir (line 389) | private Path getTruncateDir(Configuration conf) { method getDataDir (line 393) | private Path getDataDir(Configuration conf) { method createControlFile (line 398) | @SuppressWarnings("deprecation") method getFileName (line 435) | private static String getFileName(int fIdx) { class IOStatMapper (line 451) | private abstract static class IOStatMapper extends IOMapperBase { method IOStatMapper (line 460) | IOStatMapper() { method getBuffer (line 463) | public byte[] getBuffer() { method configure (line 470) | @Override // Mapper method getDataDir (line 502) | Path getDataDir() { method collectStats (line 506) | @Override class WriteMapper (line 534) | public static class WriteMapper extends IOStatMapper { method WriteMapper (line 536) | public WriteMapper() { method getIOStream (line 539) | @Override // IOMapperBase method doIO (line 553) | @Override // IOMapperBase method writeTest (line 573) | private long writeTest(FileSystem fs) throws IOException { method runIOTest (line 583) | private void runIOTest( class AppendMapper (line 605) | public static class AppendMapper extends IOStatMapper { method AppendMapper (line 607) | public AppendMapper() { method getIOStream (line 610) | @Override // IOMapperBase method doIO (line 621) | @Override // IOMapperBase method appendTest (line 642) | private long appendTest(FileSystem fs) throws IOException { class ReadMapper (line 653) | public static class ReadMapper extends IOStatMapper { method ReadMapper (line 655) | public ReadMapper() { method getIOStream (line 658) | @Override // IOMapperBase method doIO (line 669) | @Override // IOMapperBase method readTest (line 690) | private long readTest(FileSystem fs) throws IOException { class RandomReadMapper (line 698) | public static class RandomReadMapper extends IOStatMapper { method configure (line 703) | @Override // Mapper method RandomReadMapper (line 709) | public RandomReadMapper() { method getIOStream (line 713) | @Override // IOMapperBase method doIO (line 725) | @Override // IOMapperBase method nextOffset (line 751) | private long nextOffset(long current) { method randomReadTest (line 762) | private long randomReadTest(FileSystem fs) throws IOException { class TruncateMapper (line 774) | public static class TruncateMapper extends IOStatMapper { method getIOStream (line 780) | @Override // IOMapperBase method doIO (line 787) | @Override // IOMapperBase method truncateTest (line 810) | private long truncateTest(FileSystem fs) throws IOException { method parseSize (line 824) | static long parseSize(String arg) { method toMB (line 832) | static float toMB(long bytes) { method msToSecs (line 836) | static float msToSecs(long timeMillis) { method analyzeResult (line 840) | private void analyzeResult(FileSystem fs, method getReduceFilePath (line 893) | private Path getReduceFilePath(TestType testType) { method cleanup (line 912) | private void cleanup(FileSystem fs) FILE: sdk/java/src/main/java/io/juicefs/exception/QuotaExceededException.java class QuotaExceededException (line 21) | public class QuotaExceededException extends IOException { method QuotaExceededException (line 24) | public QuotaExceededException() { method QuotaExceededException (line 27) | public QuotaExceededException(String msg) { method getMessage (line 31) | @Override FILE: sdk/java/src/main/java/io/juicefs/kerberos/AuthCredential.java class AuthCredential (line 18) | public class AuthCredential { method AuthCredential (line 22) | public AuthCredential(String method, byte[] credential) { method getMethod (line 27) | public String getMethod() { method setMethod (line 31) | public void setMethod(String method) { method getCredential (line 35) | public byte[] getCredential() { method setCredential (line 39) | public void setCredential(byte[] credential) { FILE: sdk/java/src/main/java/io/juicefs/kerberos/JuiceFSDelegationTokenIdentifier.java class JuiceFSDelegationTokenIdentifier (line 21) | public class JuiceFSDelegationTokenIdentifier extends AbstractDelegation... method JuiceFSDelegationTokenIdentifier (line 24) | public JuiceFSDelegationTokenIdentifier() { method JuiceFSDelegationTokenIdentifier (line 27) | public JuiceFSDelegationTokenIdentifier(String owner, String renewer, ... method getKind (line 31) | @Override method toString (line 36) | @Override FILE: sdk/java/src/main/java/io/juicefs/kerberos/JuiceFSTokenRenewer.java class JuiceFSTokenRenewer (line 30) | public class JuiceFSTokenRenewer extends TokenRenewer { method handleKind (line 32) | @Override method isManaged (line 37) | @Override method renew (line 42) | @Override method cancel (line 52) | @Override FILE: sdk/java/src/main/java/io/juicefs/kerberos/KerberosUtil.java class KerberosUtil (line 26) | public class KerberosUtil { method genApReq (line 27) | public static byte[] genApReq(String spn) throws IOException, Interrup... FILE: sdk/java/src/main/java/io/juicefs/metrics/JuiceFSInstrumentation.java class JuiceFSInstrumentation (line 31) | @Metrics(context = "JuiceFileSystem", name = "client") method getBytesRead (line 48) | @Metric("number of bytes read from JuiceFS") method getBytesWrite (line 53) | @Metric("number of bytes write to JuiceFS") method getBytesWritePerSec (line 58) | @Metric("write speed") method getBytesReadPerSec (line 64) | @Metric("read speed") method getNumFileSystems (line 69) | @Metric("JuiceFS client num") method getUsedSize (line 74) | @Metric("JuiceFS used size") method getFiles (line 83) | @Metric("JuiceFS files") method getDirs (line 92) | @Metric("JuiceFS dirs") method getSpeedPerSec (line 101) | public double getSpeedPerSec(String name, long currentValue) { method init (line 113) | public static synchronized void init(FileSystem fs, FileSystem.Statist... method JuiceFSInstrumentation (line 121) | private JuiceFSInstrumentation(FileSystem fs, FileSystem.Statistics st... method close (line 126) | public static synchronized void close() throws IOException { FILE: sdk/java/src/main/java/io/juicefs/permission/RangerAdminRefresher.java class RangerAdminRefresher (line 41) | public class RangerAdminRefresher { method RangerAdminRefresher (line 64) | public RangerAdminRefresher(RangerBasePlugin plugIn, RangerAdminClient... method start (line 82) | public void start() { method loadRangerItem (line 91) | public void loadRangerItem() { method checkUpdate (line 148) | private boolean checkUpdate(long pollingIntervalMs) { method saveRangerRules (line 187) | private void saveRangerRules(RangerRules rules) throws IOException { method loadRangerRules (line 200) | private RangerRules loadRangerRules() throws IOException { method updateRules (line 216) | private boolean updateRules(ServicePolicies newSvcPolicies, ServiceTag... method stop (line 251) | public void stop() { FILE: sdk/java/src/main/java/io/juicefs/permission/RangerConfig.java class RangerConfig (line 19) | public class RangerConfig { method RangerConfig (line 21) | public RangerConfig(String rangerRestUrl, String serviceName, long pol... method getRangerRestUrl (line 35) | public String getRangerRestUrl() { method setRangerRestUrl (line 39) | public void setRangerRestUrl(String rangerRestUrl) { method getServiceName (line 43) | public String getServiceName() { method setServiceName (line 47) | public void setServiceName(String serviceName) { method getPollIntervalMs (line 51) | public long getPollIntervalMs() { method setPollIntervalMs (line 55) | public void setPollIntervalMs(long pollIntervalMs) { method setImpl (line 59) | public void setImpl(String impl) { method getImpl (line 63) | public String getImpl() { FILE: sdk/java/src/main/java/io/juicefs/permission/RangerJfsAccessRequest.java class RangerJfsAccessRequest (line 24) | class RangerJfsAccessRequest extends RangerAccessRequestImpl { method RangerJfsAccessRequest (line 26) | RangerJfsAccessRequest(String path, String pathOwner, String accessTyp... FILE: sdk/java/src/main/java/io/juicefs/permission/RangerJfsPlugin.java class RangerJfsPlugin (line 29) | public class RangerJfsPlugin extends RangerBasePlugin { method RangerJfsPlugin (line 37) | public RangerJfsPlugin(FileSystem fs, String serviceName, String range... method init (line 46) | @Override method cleanup (line 65) | @Override FILE: sdk/java/src/main/java/io/juicefs/permission/RangerJfsResource.java class RangerJfsResource (line 21) | class RangerJfsResource extends RangerAccessResourceImpl { method RangerJfsResource (line 22) | RangerJfsResource(String path, String owner) { FILE: sdk/java/src/main/java/io/juicefs/permission/RangerPermissionChecker.java class RangerPermissionChecker (line 43) | public class RangerPermissionChecker { method RangerPermissionChecker (line 66) | public RangerPermissionChecker(FileSystem superGroupFileSystem, Ranger... method acquire (line 79) | public static RangerPermissionChecker acquire(String volName, long han... method release (line 102) | public static void release(String volName, long handle) { method checkPermission (line 123) | public boolean checkPermission(Path path, boolean checkOwner, FsAction... method cleanUp (line 174) | public void cleanUp() { method checkResult (line 187) | private static boolean checkResult(AuthzStatus authzStatus, String use... method assembleExceptionMessage (line 195) | private static String assembleExceptionMessage(String user, String act... method getFirstNonNullAccess (line 199) | private static String getFirstNonNullAccess(FsAction ancestorAccess, F... method isAccessAllowed (line 212) | private AuthzStatus isAccessAllowed(FileStatus file, FsAction access, ... type AuthzStatus (line 242) | private enum AuthzStatus {ALLOW, DENY, NOT_DETERMINED} method toPathString (line 246) | private static String toPathString(Path path) { method path2Obj (line 250) | private PathObj path2Obj(Path path) throws IOException { method getIfExist (line 259) | private FileStatus getIfExist(Path path) throws IOException { method getAncestor (line 269) | public FileStatus getAncestor(Path path) throws IOException { class PathObj (line 282) | public static class PathObj { method PathObj (line 290) | public PathObj(FileStatus ancestor, FileStatus parent, FileStatus cu... FILE: sdk/java/src/main/java/io/juicefs/permission/RangerPermissionContext.java class RangerPermissionContext (line 21) | public class RangerPermissionContext { method RangerPermissionContext (line 29) | public RangerPermissionContext(String user, Set groups, String... FILE: sdk/java/src/main/java/io/juicefs/permission/RangerPluginCfg.java class RangerPluginCfg (line 28) | public class RangerPluginCfg extends RangerPluginConfig { method addResourceIfReadable (line 31) | @Override method isEmpty (line 44) | public static boolean isEmpty(String str) { method getFileLocation (line 48) | private URL getFileLocation(String fileName) { method RangerPluginCfg (line 75) | public RangerPluginCfg(String serviceType, String serviceName, String ... FILE: sdk/java/src/main/java/io/juicefs/permission/RangerRules.java class RangerRules (line 24) | public class RangerRules implements Serializable { method RangerRules (line 29) | public RangerRules() { method RangerRules (line 32) | public RangerRules(ServicePolicies policies, ServiceTags tags, RangerR... method getPolicies (line 38) | public ServicePolicies getPolicies() { method setPolicies (line 42) | public void setPolicies(ServicePolicies policies) { method getTags (line 46) | public ServiceTags getTags() { method setTags (line 50) | public void setTags(ServiceTags tags) { method getRoles (line 54) | public RangerRoles getRoles() { method setRoles (line 58) | public void setRoles(RangerRoles roles) { FILE: sdk/java/src/main/java/io/juicefs/tools/RangerDownloader.java class RangerDownloader (line 29) | @Parameters(commandDescription = "Download policies from ranger and save... method init (line 41) | @Override method run (line 46) | @Override method close (line 61) | @Override method getCommand (line 66) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/AclTransformation.java class AclTransformation (line 50) | public final class AclTransformation { method filterAclEntriesByAclSpec (line 53) | public static List filterAclEntriesByAclSpec(List ... method mergeAclEntries (line 78) | public static List mergeAclEntries(List existingAc... method replaceAclEntries (line 121) | public static List replaceAclEntries(List existing... method AclTransformation (line 152) | private AclTransformation() { method compare (line 156) | @Override method buildAndValidateAcl (line 162) | public static List buildAndValidateAcl(ArrayList a... method checkMaxEntries (line 197) | private static void checkMaxEntries(ScopedAclEntries scopedEntries) th... method calculateMasks (line 208) | private static void calculateMasks(List aclBuilder, EnumMap<... method copyDefaultsIfNeeded (line 244) | private static void copyDefaultsIfNeeded(List aclBuilder) { class ValidatedAclSpec (line 268) | private static final class ValidatedAclSpec implements Iterable aclSpec) throws AclException { method containsKey (line 299) | public boolean containsKey(AclEntry key) { method findByKey (line 310) | public AclEntry findByKey(AclEntry key) { method iterator (line 318) | @Override class AclException (line 324) | public static class AclException extends IOException { method AclException (line 332) | public AclException(String message) { method AclException (line 342) | public AclException(String message, Throwable cause) { FILE: sdk/java/src/main/java/io/juicefs/utils/BgTaskUtil.java class BgTaskUtil (line 30) | public class BgTaskUtil { method reset (line 37) | public static void reset() { method getBgThreadForName (line 43) | public static Map getBgThreadForName... method getRunningInstance (line 47) | public static Map> getRunningInstance() { method register (line 51) | public static void register(String volName, long handle) { method unregister (line 67) | public static void unregister(String volName, long handle, Runnable cl... type Task (line 95) | public interface Task { method run (line 96) | void run() throws IOException; method putTask (line 100) | public static void putTask(String volName, String taskName, Task task,... method startTrashEmptier (line 126) | public static void startTrashEmptier(String name, Runnable emptierTask... method stopTrashEmptier (line 142) | private static void stopTrashEmptier(String name) { FILE: sdk/java/src/main/java/io/juicefs/utils/BufferPool.java class BufferPool (line 13) | public class BufferPool { method getBuffer (line 17) | public static ByteBuffer getBuffer(int size) { method returnBuffer (line 34) | public static void returnBuffer(ByteBuffer buf) { FILE: sdk/java/src/main/java/io/juicefs/utils/CallerContextUtil.java class CallerContextUtil (line 22) | public class CallerContextUtil { method setContext (line 24) | public static void setContext(String context) throws Exception { FILE: sdk/java/src/main/java/io/juicefs/utils/ConsistentHash.java class ConsistentHash (line 25) | public class ConsistentHash { method ConsistentHash (line 32) | public ConsistentHash(int numberOfVirtualNodeReplicas, List nodes) { method addNode (line 37) | public void addNode(List nodes) { method addNode (line 43) | public void addNode(T node) { method remove (line 49) | public void remove(List nodes) { method remove (line 55) | public void remove(T node) { method get (line 61) | public T get(Object key) { method getKeyHash (line 73) | private int getKeyHash(final String k) { method getKetamaHash (line 77) | private int getKetamaHash(final String k) { FILE: sdk/java/src/main/java/io/juicefs/utils/FsNodesFetcher.java class FsNodesFetcher (line 35) | public class FsNodesFetcher extends NodesFetcher { method FsNodesFetcher (line 40) | public FsNodesFetcher(String jfsName) { method setConf (line 44) | public void setConf(Configuration conf) { method fetchNodes (line 48) | @Override method parseNodes (line 61) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/FsPermissionExtension.java class FsPermissionExtension (line 30) | @InterfaceAudience.Private method FsPermissionExtension (line 42) | public FsPermissionExtension(FsPermission perm, boolean hasAcl, method toExtendedShort (line 49) | @Override method getAclBit (line 55) | public boolean getAclBit() { method getEncryptedBit (line 59) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/NodesFetcher.java class NodesFetcher (line 35) | public abstract class NodesFetcher { method NodesFetcher (line 42) | public NodesFetcher(String jfsName) { method fetchNodes (line 56) | public List fetchNodes(String urls) { method readCache (line 71) | public List readCache() { method cache (line 81) | public void cache(List hostnames) { method getNodes (line 96) | public Set getNodes(String[] urls) { method parseNodes (line 114) | protected abstract Set parseNodes(String response) throws Exce... method doGet (line 116) | protected String doGet(String url) { FILE: sdk/java/src/main/java/io/juicefs/utils/NodesFetcherBuilder.java class NodesFetcherBuilder (line 21) | public class NodesFetcherBuilder { method buildFetcher (line 22) | public static NodesFetcher buildFetcher(String urls, String jfsName, C... FILE: sdk/java/src/main/java/io/juicefs/utils/PatchUtil.java class PatchUtil (line 28) | public class PatchUtil { type PatchType (line 31) | public enum PatchType { class ClassMethod (line 35) | public static class ClassMethod { method ClassMethod (line 41) | public ClassMethod(String method, String[] params, String[] codes, P... method doPatch (line 52) | public static synchronized void doPatch(String className, ClassMethod[... method patchBody (line 98) | public static void patchBody(String className, String method, String[]... method patchBefore (line 102) | public static void patchBefore(String className, String method, String... method patchAfter (line 106) | public static void patchAfter(String className, String method, String[... method patchBeforeAndAfter (line 110) | public static void patchBeforeAndAfter(String className, String method... FILE: sdk/java/src/main/java/io/juicefs/utils/PrestoNodesFetcher.java class PrestoNodesFetcher (line 26) | public class PrestoNodesFetcher extends NodesFetcher { method PrestoNodesFetcher (line 28) | public PrestoNodesFetcher(String jfsName) { method parseNodes (line 33) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/RedefineClassAgent.java class RedefineClassAgent (line 71) | public class RedefineClassAgent { method agentmain (line 99) | public static void agentmain(String agentArgs, Instrumentation inst) { method redefineClasses (line 121) | public static void redefineClasses(ClassDefinition... definitions) method ensureAgentLoaded (line 133) | private static void ensureAgentLoaded() throws FailedToLoadAgentExcept... method createAgentJarFile (line 185) | private static File createAgentJarFile() throws IOException { class FailedToLoadAgentException (line 220) | public static class FailedToLoadAgentException extends Exception { method FailedToLoadAgentException (line 221) | public FailedToLoadAgentException() { method FailedToLoadAgentException (line 225) | public FailedToLoadAgentException(Throwable cause) { FILE: sdk/java/src/main/java/io/juicefs/utils/ReflectionUtil.java class ReflectionUtil (line 21) | public class ReflectionUtil { method hasMethod (line 22) | public static boolean hasMethod(String className, String method, Strin... method hasMethod (line 37) | public static boolean hasMethod(String className, String method, Class... method getConstructor (line 47) | public static Constructor getConstructor(Class clazz, Class<... method getField (line 55) | public static Object getField(String className, String field, Object o... FILE: sdk/java/src/main/java/io/juicefs/utils/SparkNodesFetcher.java class SparkNodesFetcher (line 25) | public class SparkNodesFetcher extends NodesFetcher { method SparkNodesFetcher (line 26) | public SparkNodesFetcher(String jfsName) { method parseNodes (line 31) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/SparkThriftNodesFetcher.java class SparkThriftNodesFetcher (line 28) | public class SparkThriftNodesFetcher extends NodesFetcher { method SparkThriftNodesFetcher (line 31) | public SparkThriftNodesFetcher(String jfsName) { method getNodes (line 35) | @Override method parseNodes (line 55) | @Override FILE: sdk/java/src/main/java/io/juicefs/utils/YarnNodesFetcher.java class YarnNodesFetcher (line 27) | public class YarnNodesFetcher extends NodesFetcher { method YarnNodesFetcher (line 30) | public YarnNodesFetcher(String jfsName) { method getNodes (line 34) | @Override method parseNodes (line 57) | @Override FILE: sdk/java/src/test/java/io/juicefs/JuiceFileSystemBgTaskTest.java class JuiceFileSystemBgTaskTest (line 33) | public class JuiceFileSystemBgTaskTest extends TestCase { method testJuiceFileSystemBgTask (line 36) | public void testJuiceFileSystemBgTask() throws Exception { FILE: sdk/java/src/test/java/io/juicefs/JuiceFileSystemTest.java class JuiceFileSystemTest (line 54) | public class JuiceFileSystemTest extends TestCase { method setUp (line 59) | public void setUp() throws Exception { method tearDown (line 76) | public void tearDown() throws Exception { method testFsStatus (line 81) | public void testFsStatus() throws IOException { method testSummary (line 87) | public void testSummary() throws IOException { method testLongName (line 99) | public void testLongName() throws IOException { method testLocation (line 112) | public void testLocation() throws IOException { method testReadWrite (line 128) | public void testReadWrite() throws Exception { method testWrite (line 155) | public void testWrite() throws Exception { method testReadSkip (line 199) | public void testReadSkip() throws Exception { method testReadAfterClose (line 213) | public void testReadAfterClose() throws Exception { method testMkdirs (line 230) | public void testMkdirs() throws Exception { method testCreateWithoutPermission (line 244) | public void testCreateWithoutPermission() throws Exception { method testCreateNonRecursive (line 262) | public void testCreateNonRecursive() throws Exception { method testTruncate (line 271) | public void testTruncate() throws Exception { method testAccess (line 280) | public void testAccess() throws Exception { method testSetPermission (line 301) | public void testSetPermission() throws Exception { method testSetTimes (line 308) | public void testSetTimes() throws Exception { method testSetOwner (line 331) | public void testSetOwner() throws Exception { method testCloseFileSystem (line 344) | public void testCloseFileSystem() throws Exception { method testReadahead (line 354) | public void testReadahead() throws Exception { method testOutputStream (line 377) | public void testOutputStream() throws Exception { method testInputStream (line 389) | public void testInputStream() throws Exception { method testInputStreamSkipNBytes (line 456) | public void testInputStreamSkipNBytes() throws Exception { method testReadStats (line 470) | public void testReadStats() throws IOException { method testChecksum (line 509) | public void testChecksum() throws IOException { method testXattr (line 550) | public void testXattr() throws IOException { method testAppend (line 581) | public void testAppend() throws Exception { method testFlinkHadoopRecoverableWriter (line 591) | public void testFlinkHadoopRecoverableWriter() throws Exception { method testConcat (line 595) | public void testConcat() throws Exception { method testList (line 628) | public void testList() throws Exception { method writeFile (line 649) | private void writeFile(FileSystem fs, Path p, String content) throws I... method createNewFs (line 655) | public FileSystem createNewFs(Configuration conf, String user, String[... method testUsersAndGroups (line 663) | public void testUsersAndGroups() throws Exception { method testGroupPerm (line 695) | public void testGroupPerm() throws Exception { method testUmask (line 715) | public void testUmask() throws Exception { method testGuidMapping (line 750) | public void testGuidMapping() throws Exception { method testGuidMappingFromString (line 775) | public void testGuidMappingFromString() throws Exception { method testTrash (line 801) | public void testTrash() throws Exception { method testBlockSize (line 815) | public void testBlockSize() throws Exception { method testReadSpeed (line 822) | public void testReadSpeed() throws Exception { method createFileWithContents (line 853) | private void createFileWithContents(FileSystem fs, Path f, byte[] cont... method testIOClosed (line 861) | public void testIOClosed() throws Exception { method testRead (line 883) | public void testRead() throws Exception { method testInnerSymlink (line 947) | public void testInnerSymlink() throws Exception { method testUserWithMultiGroups (line 954) | public void testUserWithMultiGroups() throws Exception { method testConcurrentCreate (line 983) | public void testConcurrentCreate() throws Exception { method tryAccess (line 1003) | private boolean tryAccess(Path path, String user, String[] group, FsAc... method aclEntry (line 1020) | static AclEntry aclEntry(AclEntryScope scope, AclEntryType type, FsAct... method aclEntry (line 1024) | static AclEntry aclEntry(AclEntryScope scope, AclEntryType type, Strin... method testAcl (line 1028) | public void testAcl() throws Exception { method testAclException (line 1047) | public void testAclException() throws Exception { method testDefaultAclExistingDirFile (line 1061) | public void testDefaultAclExistingDirFile() throws Exception { method testAccessAclNotInherited (line 1116) | public void testAccessAclNotInherited() throws IOException { method testFileStatusWithAcl (line 1152) | public void testFileStatusWithAcl() throws Exception { method testRenameAccessControlException (line 1173) | public void testRenameAccessControlException() throws Exception { method testSubdir (line 1205) | public void testSubdir() throws IOException, InterruptedException { method testMultipleSubdirs (line 1257) | public void testMultipleSubdirs() throws IOException, InterruptedExcep... FILE: sdk/java/src/test/java/io/juicefs/acl/TestAclCLI.java class TestAclCLI (line 28) | public class TestAclCLI extends CLITestHelperDFS { method initConf (line 32) | protected void initConf() { method setUp (line 38) | @Before method tearDown (line 47) | @After method getTestFile (line 53) | @Override method expandCommand (line 58) | @Override method execute (line 69) | @Override method testAll (line 74) | @Test FILE: sdk/java/src/test/java/io/juicefs/contract/JuiceFSContract.java class JuiceFSContract (line 21) | public class JuiceFSContract extends AbstractBondedFSContract { method JuiceFSContract (line 23) | public JuiceFSContract(Configuration conf) { method getScheme (line 28) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestAppend.java class TestAppend (line 24) | public class TestAppend extends AbstractContractAppendTest { method createContract (line 25) | @Override method teardown (line 30) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestConcat.java class TestConcat (line 23) | public class TestConcat extends AbstractContractConcatTest { method createContract (line 24) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestCreate.java class TestCreate (line 22) | public class TestCreate extends AbstractContractCreateTest { method createContract (line 23) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestDelete.java class TestDelete (line 22) | public class TestDelete extends AbstractContractDeleteTest { method createContract (line 23) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestGetFileStatus.java class TestGetFileStatus (line 24) | public class TestGetFileStatus extends AbstractContractGetFileStatusTest { method createContract (line 25) | @Override method setup (line 30) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestJuiceFileSystemContract.java class TestJuiceFileSystemContract (line 31) | public class TestJuiceFileSystemContract extends FileSystemContractBaseT... method setUp (line 32) | @Before method createNewFs (line 40) | public FileSystem createNewFs(Configuration conf) throws IOException { method testMkdirsWithUmask (line 44) | @Test FILE: sdk/java/src/test/java/io/juicefs/contract/TestMkdir.java class TestMkdir (line 22) | public class TestMkdir extends AbstractContractMkdirTest { method createContract (line 23) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestOpen.java class TestOpen (line 22) | public class TestOpen extends AbstractContractOpenTest { method createContract (line 23) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestRename.java class TestRename (line 24) | public class TestRename extends AbstractContractRenameTest { method createContract (line 25) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestSeek.java class TestSeek (line 23) | public class TestSeek extends AbstractContractSeekTest { method createContract (line 24) | @Override method teardown (line 29) | @Override FILE: sdk/java/src/test/java/io/juicefs/contract/TestSetTimes.java class TestSetTimes (line 23) | public class TestSetTimes extends AbstractContractSetTimesTest { method createContract (line 24) | @Override FILE: sdk/java/src/test/java/io/juicefs/kerberos/KerberosTest.java class KerberosTest (line 33) | public class KerberosTest { method testWithoutKrb (line 44) | @Test method test (line 57) | @Test method testToken (line 73) | @Test method testProxyUser (line 105) | @Test method testSuperUser (line 141) | @Test method testMapRule (line 159) | @Test method testMapRuleWithProxyUser (line 180) | @Test FILE: sdk/java/src/test/java/io/juicefs/permission/RangerAdminClientImpl.java class RangerAdminClientImpl (line 31) | public class RangerAdminClientImpl extends AbstractRangerAdminClient { method init (line 37) | public void init(String serviceName, String appId, String configProper... method getServicePoliciesIfUpdated (line 41) | public ServicePolicies getServicePoliciesIfUpdated(long lastKnownVersi... method getServiceTagsIfUpdated (line 53) | public ServiceTags getServiceTagsIfUpdated(long lastKnownVersion, long... method getTagTypes (line 64) | public List getTagTypes(String tagTypePattern) throws Exception { FILE: sdk/java/src/test/java/io/juicefs/permission/RangerPermissionCheckerTest.java class RangerPermissionCheckerTest (line 34) | public class RangerPermissionCheckerTest extends TestCase { method setUp (line 39) | public void setUp() throws Exception { method tearDown (line 48) | public void tearDown() throws Exception { method testRangerCheckerInitFailed (line 52) | public void testRangerCheckerInitFailed() throws Exception { method testRead (line 91) | public void testRead() throws Exception { method testWrite (line 95) | public void testWrite() throws Exception { method testExecute (line 154) | public void testExecute() throws Exception { method testSetPermission (line 219) | public void testSetPermission() throws Exception { method testSetOwner (line 251) | public void testSetOwner() throws Exception { method testReadTestUsingTagPolicy (line 283) | public void testReadTestUsingTagPolicy() throws Exception { method testHDFSContentSummary (line 372) | public void testHDFSContentSummary() throws Exception { method HDFSReadTest (line 377) | void HDFSReadTest(String fileName) throws Exception { method HDFSGetContentSummary (line 443) | void HDFSGetContentSummary(final String dirName) throws Exception { method createFile (line 475) | void createFile(String baseDir, Integer index) throws Exception { method deleteFile (line 488) | void deleteFile(String baseDir, Integer index) throws Exception { FILE: sdk/java/src/test/java/io/juicefs/utils/BgTaskUtilTest.java class BgTaskUtilTest (line 12) | public class BgTaskUtilTest extends TestCase { method testBgTask (line 15) | public void testBgTask() throws Exception { FILE: sdk/java/src/test/java/io/juicefs/utils/HashTest.java class HashTest (line 27) | public class HashTest extends TestCase { method testConsitentHashCompat (line 37) | public void testConsitentHashCompat() { method testConsitentHash (line 48) | public void testConsitentHash() { method stdev (line 86) | private static double stdev(Map after) { method getNodes (line 102) | private List getNodes() { FILE: sdk/python/examples/ffrecord/dataloader.py class FFRecordDataLoader (line 24) | class FFRecordDataLoader(torch.utils.data.DataLoader): method __init__ (line 25) | def __init__( function worker_init_fn (line 74) | def worker_init_fn(worker_id): function collate_fn (line 80) | def collate_fn(batch): FILE: sdk/python/examples/ffrecord/dataset.py class FFRecordDataset (line 23) | class FFRecordDataset(torch.utils.data.Dataset): method __init__ (line 24) | def __init__(self, fnames: Union[str, List[str]], check_data: bool = T... method initialize (line 31) | def initialize(self, worker_id=0, num_workers=1): method __len__ (line 35) | def __len__(self) -> int: method __getitem__ (line 38) | def __getitem__(self, index: Union[int, List[int]]) -> Union[np.array,... method close (line 46) | def close(self): method __enter__ (line 49) | def __enter__(self): method __exit__ (line 52) | def __exit__(self, exc_type, exc_val, exc_tb): FILE: sdk/python/examples/ffrecord/filereader.py function ffcrc32 (line 33) | def ffcrc32(code: int, data: Union[bytes, bytearray], length: int) -> int: class FileHeader (line 41) | class FileHeader: method __init__ (line 42) | def __init__(self, jfscli: juicefs.Client, fname: str, check_data: boo... method _read_uint32 (line 63) | def _read_uint32(self) -> int: method _read_uint64 (line 66) | def _read_uint64(self) -> int: method close_fd (line 69) | def close_fd(self): method validate (line 74) | def validate(self): method access (line 85) | def access(self, index: int, use_aio: bool = False) -> Tuple[int, int,... class FileReader (line 93) | class FileReader: method __init__ (line 94) | def __init__(self, fnames: List[str], check_data: bool = True): method close_fd (line 102) | def close_fd(self): method open_fd (line 110) | def open_fd(self): method validate (line 119) | def validate(self): method validate_sample (line 123) | def validate_sample(self, index: int, buf: bytes, checksum: int): method read (line 128) | def read(self, indices: List[int]): method read_batch (line 131) | def read_batch(self, indices: List[int]): method read_one (line 140) | def read_one(self, index: int): method close (line 156) | def close(self): FILE: sdk/python/examples/ffrecord/filereader_dio.py function ffcrc32 (line 25) | def ffcrc32(code: int, data: Union[bytes, bytearray], length: int) -> int: class FileHeader (line 33) | class FileHeader: method __init__ (line 34) | def __init__(self, fname: str, check_data: bool = True): method _read_uint32 (line 58) | def _read_uint32(self) -> int: method _read_uint64 (line 61) | def _read_uint64(self) -> int: method close_fd (line 64) | def close_fd(self): method open_fd (line 71) | def open_fd(self): method validate (line 77) | def validate(self): method access (line 88) | def access(self, index: int, use_aio: bool = False) -> Tuple[int, int,... class FileReader (line 96) | class FileReader: method __init__ (line 97) | def __init__(self, fnames: List[str], check_data: bool = True): method close_fd (line 111) | def close_fd(self): method open_fd (line 115) | def open_fd(self): method validate (line 120) | def validate(self): method validate_sample (line 124) | def validate_sample(self, index: int, buf: bytes, checksum: int): method read_batch (line 129) | def read_batch(self, indices: List[int]) -> List[np.array]: method read_one (line 138) | def read_one(self, index: int) -> np.array: FILE: sdk/python/examples/ffrecord/main.py function serialize (line 35) | def serialize(sample): function deserialize (line 38) | def deserialize(sample): function generate_random_image_np (line 41) | def generate_random_image_np( function generate_data_entry (line 54) | def generate_data_entry( function write_ffrecord (line 87) | def write_ffrecord(): function read_ffrecord (line 111) | def read_ffrecord(batch_size: int): class MyDataset (line 134) | class MyDataset(Dataset): method __init__ (line 135) | def __init__(self, fnames, check_data=True): method __len__ (line 138) | def __len__(self): method __getitem__ (line 141) | def __getitem__(self, indices): FILE: sdk/python/juicefs/juicefs/juicefs.py function check_error (line 37) | def check_error(r, fn, args): class FileInfo (line 56) | class FileInfo(Structure): function _tid (line 69) | def _tid(): function _bin (line 72) | def _bin(s): function unpack (line 75) | def unpack(fmt, buf): class JuiceFSLib (line 81) | class JuiceFSLib(object): method __init__ (line 82) | def __init__(self): method __getattr__ (line 85) | def __getattr__(self, n): class Client (line 95) | class Client(object): method __init__ (line 97) | def __init__(self, name, meta, *, bucket="", storage_class="", read_on... method __del__ (line 166) | def __del__(self): method stat (line 169) | def stat(self, path): method exists (line 175) | def exists(self, path): method open (line 183) | def open(self, path, mode='r', buffering=-1, encoding=None, errors=None): method truncate (line 235) | def truncate(self, path, size): method remove (line 239) | def remove(self, path): method mkdir (line 243) | def mkdir(self, path, mode=0o777): method makedirs (line 247) | def makedirs(self, path, mode=0o777, exist_ok=False): method rmdir (line 251) | def rmdir(self, path): method rename (line 255) | def rename(self, old, new): method listdir (line 259) | def listdir(self, path, detail=False): method chmod (line 284) | def chmod(self, path, mode): method chown (line 288) | def chown(self, path, uid, gid): method link (line 292) | def link(self, src, dst): method lstat (line 296) | def lstat(self, path): method readlink (line 302) | def readlink(self, path): method symlink (line 308) | def symlink(self, src, dst): method unlink (line 312) | def unlink(self, path): method rmr (line 316) | def rmr(self, path): method utime (line 320) | def utime(self, path, times=None): method walk (line 327) | def walk(self, top, topdown=True, onerror=None, followlinks=False): method getxattr (line 330) | def getxattr(self, path, name): method listxattr (line 337) | def listxattr(self, path): method setxattr (line 348) | def setxattr(self, path, name, value, flags=0): method removexattr (line 353) | def removexattr(self, path, name): method clone (line 357) | def clone(self, src, dst, preserve=False): method set_quota (line 361) | def set_quota(self, path, capacity=0, inodes=0, create=False, strict=F... method get_quota (line 365) | def get_quota(self, path): method del_quota (line 369) | def del_quota(self, path): method list_quota (line 373) | def list_quota(self): method check_quota (line 377) | def check_quota(self, path, repair=False, strict=False): method _quota (line 381) | def _quota(self, cmd, path="", capacity=0, inodes=0, create=False, rep... method info (line 390) | def info(self, path, recursive=False, strict=False): method summary (line 400) | def summary(self, path, depth=0, entries=1): method warmup (line 422) | def warmup(self, paths, threads=10, evict=False, check=False, backgrou... method status (line 445) | def status(self, trash=False, session=0): class _File (line 454) | class _File(object): method __init__ (line 456) | def __init__(self, lib, fd, path, mode, flag, length): method __fspath__ (line 466) | def __fspath__(self): method readable (line 469) | def readable(self): method writable (line 472) | def writable(self): method seekable (line 475) | def seekable(self): method fileno (line 478) | def fileno(self): method isatty (line 481) | def isatty(self): method read (line 484) | def read(self, size=-1): method readinto (line 513) | def readinto(self, buffer): method write (line 520) | def write(self, data): method seek (line 540) | def seek(self, offset, whence=0): method tell (line 555) | def tell(self): method truncate (line 560) | def truncate(self, size=None): method flush (line 572) | def flush(self): method fsync (line 575) | def fsync(self): method close (line 578) | def close(self): method __del__ (line 584) | def __del__(self): method _check_closed (line 587) | def _check_closed(self): method readline (line 591) | def readline(self): # TODO: add parameter `size=-1` method xreadlines (line 598) | def xreadlines(self): method readlines (line 601) | def readlines(self, hint=-1): method writelines (line 618) | def writelines(self, lines): class File (line 624) | class File(object): method __init__ (line 626) | def __init__(self, lib, fd, path, mode, flag, length, buffering, encod... method __getattr__ (line 647) | def __getattr__(self, name): method __fspath__ (line 650) | def __fspath__(self): method __enter__ (line 653) | def __enter__(self): method __exit__ (line 656) | def __exit__(self, exc_type, exc_value, traceback): method __iter__ (line 659) | def __iter__(self): method __next__ (line 662) | def __next__(self): method next (line 665) | def next(self): method fileno (line 671) | def fileno(self): method isatty (line 674) | def isatty(self): method fsync (line 677) | def fsync(self): method close (line 682) | def close(self): function test (line 688) | def test(): FILE: sdk/python/juicefs/juicefs/spec.py class JuiceFS (line 29) | class JuiceFS(AbstractFileSystem): method __init__ (line 34) | def __init__(self, name, auto_mkdir=False, **kwargs): method fsid (line 43) | def fsid(self): method makedirs (line 46) | def makedirs(self, path, exist_ok=False, mode=511): method mkdir (line 51) | def mkdir(self, path, create_parents=True, mode=0o511): method rmdir (line 59) | def rmdir(self, path): method ls (line 62) | def ls(self, path, detail=False, **kwargs): method du (line 85) | def du(self, path, total=True, maxdepth=None, withdirs=False, **kwargs): method info (line 91) | def info(self, path): method lexists (line 113) | def lexists(self, path, **kwargs): method cp_file (line 120) | def cp_file(self, path1, path2, **kwargs): method rm (line 128) | def rm(self, path, recursive=False, maxdepth=None): method _rm (line 137) | def _rm(self, path): method mv (line 140) | def mv(self, old, new, recursive=False, maxdepth=None, **kwargs): method link (line 143) | def link(self, src, dst, **kwargs): method symlink (line 148) | def symlink(self, src, dst, **kwargs): method islink (line 153) | def islink(self, path) -> bool: method _open (line 160) | def _open(self, path, mode="rb", block_size=None, autocommit=True, **k... method touch (line 166) | def touch(self, path, truncate=True, **kwargs): method _parent (line 177) | def _parent(cls, path): method created (line 192) | def created(self, path): method modified (line 197) | def modified(self, path): method _isfilestore (line 202) | def _isfilestore(self): method chmod (line 208) | def chmod(self, path, mode): class JuiceFile (line 213) | class JuiceFile(AbstractBufferedFile): method __init__ (line 214) | def __init__(self, fs, path, mode="rb", block_size=None, autocommit=Tr... method _open (line 221) | def _open(self): method _fetch_range (line 232) | def _fetch_range(self, start, end): method __setstate__ (line 240) | def __setstate__(self, state): method __getstate__ (line 249) | def __getstate__(self): method commit (line 259) | def commit(self): method discard (line 264) | def discard(self): method tell (line 269) | def tell(self): method seek (line 272) | def seek(self, loc, whence=0): method write (line 275) | def write(self, data): method read (line 278) | def read(self, length=-1): method flush (line 281) | def flush(self, force=True): method truncate (line 284) | def truncate(self, size=None): method close (line 287) | def close(self): method __getattr__ (line 293) | def __getattr__(self, item): method __del__ (line 296) | def __del__(self): FILE: sdk/python/juicefs/tests/test.py class JuiceFSFixtures (line 9) | class JuiceFSFixtures(abstract.AbstractFixtures): method fs (line 11) | def fs(self): method fs_path (line 17) | def fs_path(self, tmpdir): class TestJuiceFSGet (line 21) | class TestJuiceFSGet(abstract.AbstractGetTests, JuiceFSFixtures): class TestJuiceFSPut (line 25) | class TestJuiceFSPut(abstract.AbstractPutTests, JuiceFSFixtures): class TestJuiceFSCopy (line 29) | class TestJuiceFSCopy(abstract.AbstractCopyTests, JuiceFSFixtures):