rclone-api 1.4.19__tar.gz → 1.4.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rclone_api-1.4.19 → rclone_api-1.4.20}/PKG-INFO +1 -1
- {rclone_api-1.4.19 → rclone_api-1.4.20}/pyproject.toml +1 -1
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cmd/copy_large_s3_finish.py +1 -1
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/s3_multipart_uploader_by_copy.py +11 -5
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/PKG-INFO +1 -1
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.aiderignore +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.github/workflows/lint.yml +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.github/workflows/push_macos.yml +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.github/workflows/push_ubuntu.yml +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.github/workflows/push_win.yml +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.gitignore +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.pylintrc +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.vscode/launch.json +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.vscode/settings.json +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/.vscode/tasks.json +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/LICENSE +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/MANIFEST.in +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/README.md +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/clean +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/install +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/lint +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/requirements.testing.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/setup.cfg +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/setup.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/__init__.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/assets/example.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cli.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cmd/analyze.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cmd/copy_large_s3.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cmd/list_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/cmd/save_to_db.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/completed_process.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/config.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/convert.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/db/__init__.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/db/db.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/db/models.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/deprecated.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/detail/copy_file_parts.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/detail/walk.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/diff.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/dir.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/dir_listing.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/exec.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/experimental/flags.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/experimental/flags_base.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/file.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/file_item.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/file_part.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/file_stream.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/filelist.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/group_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/http_server.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/log.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/mount.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/process.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/rclone_impl.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/remote.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/rpath.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/api.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/basic_ops.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/chunk_task.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/create.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/merge_state.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/multipart/file_info.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/multipart/finished_piece.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/multipart/upload_info.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/multipart/upload_state.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/types.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/s3/upload_file_multipart.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/scan_missing_folders.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/types.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api/util.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/SOURCES.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/dependency_links.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/entry_points.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/requires.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/src/rclone_api.egg-info/top_level.txt +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/test +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/archive/test_paramiko.py.disabled +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_cmd_list_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_copy.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_copy_bytes.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_copy_file_resumable_s3.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_copy_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_db.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_diff.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_file_item.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_group_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_is_synced.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_ls.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_ls_stream_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_mount.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_mount_s3.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_obscure.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_rclone_config.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_read_write_text.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_remote_control.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_remotes.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_s3.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_scan_missing_folders.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_serve_http.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_size_files.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_size_suffix.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tests/test_walk.py +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/tox.ini +0 -0
- {rclone_api-1.4.19 → rclone_api-1.4.20}/upload_package.sh +0 -0
@@ -57,7 +57,7 @@ def main() -> int:
|
|
57
57
|
rclone = Rclone(rclone_conf=args.config_path)
|
58
58
|
info_path = _get_info_path(src=args.src)
|
59
59
|
s3_server_side_multi_part_merge(
|
60
|
-
rclone=rclone.impl, info_path=info_path, max_workers=
|
60
|
+
rclone=rclone.impl, info_path=info_path, max_workers=5
|
61
61
|
)
|
62
62
|
return 0
|
63
63
|
|
@@ -315,13 +315,14 @@ def _get_merge_path(info_path: str) -> str:
|
|
315
315
|
def _begin_or_resume_merge(
|
316
316
|
rclone: RcloneImpl,
|
317
317
|
info: InfoJson,
|
318
|
+
verbose: bool = False,
|
318
319
|
max_workers: int = DEFAULT_MAX_WORKERS,
|
319
320
|
) -> "S3MultiPartMerger | Exception":
|
320
321
|
try:
|
321
322
|
merger: S3MultiPartMerger = S3MultiPartMerger(
|
322
323
|
rclone_impl=rclone,
|
323
324
|
info=info,
|
324
|
-
verbose=
|
325
|
+
verbose=verbose,
|
325
326
|
max_workers=max_workers,
|
326
327
|
)
|
327
328
|
|
@@ -412,9 +413,11 @@ class S3MultiPartMerger:
|
|
412
413
|
|
413
414
|
@staticmethod
|
414
415
|
def create(
|
415
|
-
rclone: RcloneImpl, info: InfoJson, max_workers: int
|
416
|
+
rclone: RcloneImpl, info: InfoJson, max_workers: int, verbose: bool
|
416
417
|
) -> "S3MultiPartMerger | Exception":
|
417
|
-
return _begin_or_resume_merge(
|
418
|
+
return _begin_or_resume_merge(
|
419
|
+
rclone=rclone, info=info, max_workers=max_workers, verbose=verbose
|
420
|
+
)
|
418
421
|
|
419
422
|
@property
|
420
423
|
def bucket(self) -> str:
|
@@ -494,7 +497,10 @@ class S3MultiPartMerger:
|
|
494
497
|
|
495
498
|
|
496
499
|
def s3_server_side_multi_part_merge(
|
497
|
-
rclone: RcloneImpl,
|
500
|
+
rclone: RcloneImpl,
|
501
|
+
info_path: str,
|
502
|
+
max_workers: int = DEFAULT_MAX_WORKERS,
|
503
|
+
verbose: bool = False,
|
498
504
|
) -> Exception | None:
|
499
505
|
info = InfoJson(rclone, src=None, src_info=info_path)
|
500
506
|
loaded = info.load()
|
@@ -503,7 +509,7 @@ def s3_server_side_multi_part_merge(
|
|
503
509
|
f"Info file not found, has the upload finished? {info_path}"
|
504
510
|
)
|
505
511
|
merger: S3MultiPartMerger | Exception = S3MultiPartMerger.create(
|
506
|
-
rclone=rclone, info=info, max_workers=max_workers
|
512
|
+
rclone=rclone, info=info, max_workers=max_workers, verbose=verbose
|
507
513
|
)
|
508
514
|
if isinstance(merger, Exception):
|
509
515
|
return merger
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|