1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-12 13:28:30 +00:00

Check if obj already exists when write obj.

This commit is contained in:
ly1217
2019-08-26 19:21:26 -07:00
parent b224a39fb9
commit 8a08577a6b
2 changed files with 22 additions and 0 deletions

View File

@@ -879,6 +879,11 @@ save_commit (SeafCommitManager *manager,
char *data;
gsize len;
if (seaf_obj_store_obj_exists (manager->obj_store,
repo_id, version,
commit->commit_id))
return 0;
object = commit_to_json_object (commit);
data = json_dumps (object, 0);

View File

@@ -462,6 +462,12 @@ write_seafile (SeafFSManager *fs_mgr,
guint8 *compressed;
int outlen;
if (seaf_obj_store_obj_exists (fs_mgr->obj_store, repo_id, version, seafile_id)) {
ret = 0;
free (ondisk);
goto out;
}
if (seaf_compress (ondisk, ondisk_size, &compressed, &outlen) < 0) {
seaf_warning ("Failed to compress seafile obj %s:%s.\n",
repo_id, seafile_id);
@@ -477,6 +483,11 @@ write_seafile (SeafFSManager *fs_mgr,
free (ondisk);
} else {
ondisk = create_seafile_v0 (cdc, &ondisk_size, seafile_id);
if (seaf_obj_store_obj_exists (fs_mgr->obj_store, repo_id, version, seafile_id)) {
ret = 0;
g_free (ondisk);
goto out;
}
if (seaf_obj_store_write_obj (fs_mgr->obj_store, repo_id, version, seafile_id,
ondisk, ondisk_size, FALSE) < 0)
@@ -1389,6 +1400,9 @@ seafile_save (SeafFSManager *fs_mgr,
int len;
int ret = 0;
if (seaf_obj_store_obj_exists (fs_mgr->obj_store, repo_id, version, file->file_id))
return 0;
data = seafile_to_data (file, &len);
if (!data)
return -1;
@@ -1860,6 +1874,9 @@ seaf_dir_save (SeafFSManager *fs_mgr,
if (memcmp (dir->dir_id, EMPTY_SHA1, 40) == 0)
return 0;
if (seaf_obj_store_obj_exists (fs_mgr->obj_store, repo_id, version, dir->dir_id))
return 0;
if (seaf_obj_store_write_obj (fs_mgr->obj_store, repo_id, version, dir->dir_id,
dir->ondisk, dir->ondisk_size, FALSE) < 0)
ret = -1;