mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 07:27:04 +00:00
fix get_doc_key_by_repo_id_file_path (#5293)
* fix get_doc_key_by_repo_id_file_path * optimize code * add try-except
This commit is contained in:
@@ -49,3 +49,7 @@ CREATE TABLE `onlyoffice_onlyofficedockey` (
|
||||
KEY `onlyoffice_onlyofficedockey_doc_key_edba1352` (`doc_key`),
|
||||
KEY `onlyoffice_onlyofficedockey_repo_id_file_path_md5_52002073` (`repo_id_file_path_md5`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE `onlyoffice_onlyofficedockey` DROP INDEX `onlyoffice_onlyofficedockey_repo_id_file_path_md5_52002073`;
|
||||
|
||||
ALTER TABLE `onlyoffice_onlyofficedockey` ADD UNIQUE (repo_id_file_path_md5);
|
||||
|
@@ -12,5 +12,5 @@ class OnlyOfficeDocKey(models.Model):
|
||||
username = models.CharField(max_length=255)
|
||||
repo_id = models.CharField(max_length=36)
|
||||
file_path = models.TextField()
|
||||
repo_id_file_path_md5 = models.CharField(max_length=100, db_index=True)
|
||||
repo_id_file_path_md5 = models.CharField(max_length=100, db_index=True, unique=True)
|
||||
created_time = models.DateTimeField(default=datetime.datetime.now)
|
||||
|
@@ -39,33 +39,43 @@ def get_doc_key_by_repo_id_file_path(repo_id, file_path):
|
||||
|
||||
md5 = hashlib.md5(force_bytes(repo_id + file_path)).hexdigest()
|
||||
try:
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.get(repo_id_file_path_md5=md5)
|
||||
return doc_key_obj.doc_key
|
||||
except OnlyOfficeDocKey.DoesNotExist:
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.filter(repo_id_file_path_md5=md5).first()
|
||||
if doc_key_obj:
|
||||
return doc_key_obj.doc_key
|
||||
return ''
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
return ''
|
||||
|
||||
|
||||
def get_file_info_by_doc_key(doc_key):
|
||||
|
||||
try:
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.get(doc_key=doc_key)
|
||||
return {
|
||||
'username': doc_key_obj.username,
|
||||
'repo_id': doc_key_obj.repo_id,
|
||||
'file_path': doc_key_obj.file_path,
|
||||
}
|
||||
except OnlyOfficeDocKey.DoesNotExist:
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.filter(doc_key=doc_key).first()
|
||||
if doc_key_obj:
|
||||
return {
|
||||
'username': doc_key_obj.username,
|
||||
'repo_id': doc_key_obj.repo_id,
|
||||
'file_path': doc_key_obj.file_path,
|
||||
}
|
||||
return {}
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
return {}
|
||||
|
||||
|
||||
def save_doc_key(doc_key, username, repo_id, file_path):
|
||||
|
||||
md5 = hashlib.md5(force_bytes(repo_id + file_path)).hexdigest()
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.create(doc_key=doc_key,
|
||||
username=username,
|
||||
repo_id=repo_id,
|
||||
file_path=file_path,
|
||||
repo_id_file_path_md5=md5)
|
||||
try:
|
||||
doc_key_obj = OnlyOfficeDocKey.objects.create(doc_key=doc_key,
|
||||
username=username,
|
||||
repo_id=repo_id,
|
||||
file_path=file_path,
|
||||
repo_id_file_path_md5=md5)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
return
|
||||
|
||||
return doc_key_obj.doc_key
|
||||
|
||||
|
@@ -1341,6 +1341,6 @@ CREATE TABLE `onlyoffice_onlyofficedockey` (
|
||||
`repo_id_file_path_md5` varchar(100) NOT NULL,
|
||||
`created_time` datetime(6) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `repo_id_file_path_md5` (`repo_id_file_path_md5`),
|
||||
KEY `onlyoffice_onlyofficedockey_doc_key_edba1352` (`doc_key`),
|
||||
KEY `onlyoffice_onlyofficedockey_repo_id_file_path_md5_52002073` (`repo_id_file_path_md5`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
Reference in New Issue
Block a user