🐛 The package exported from the cloud configuration cannot be imported after being renamed https://github.com/siyuan-note/siyuan/issues/11491

This commit is contained in:
Daniel 2024-05-21 17:10:40 +08:00
parent f26e19b21e
commit 1a7e1370d0
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -225,15 +225,15 @@ func importSyncProviderS3(c *gin.Context) {
return return
} }
tmpDir := filepath.Join(util.TempDir, "import") importDir := filepath.Join(util.TempDir, "import")
if err = os.MkdirAll(tmpDir, 0755); nil != err { if err = os.MkdirAll(importDir, 0755); nil != err {
logging.LogErrorf("import S3 provider failed: %s", err) logging.LogErrorf("import S3 provider failed: %s", err)
ret.Code = -1 ret.Code = -1
ret.Msg = err.Error() ret.Msg = err.Error()
return return
} }
tmp := filepath.Join(tmpDir, f.Filename) tmp := filepath.Join(importDir, f.Filename)
if err = os.WriteFile(tmp, data, 0644); nil != err { if err = os.WriteFile(tmp, data, 0644); nil != err {
logging.LogErrorf("import S3 provider failed: %s", err) logging.LogErrorf("import S3 provider failed: %s", err)
ret.Code = -1 ret.Code = -1
@ -241,6 +241,7 @@ func importSyncProviderS3(c *gin.Context) {
return return
} }
tmpDir := filepath.Join(importDir, "s3")
if err = gulu.Zip.Unzip(tmp, tmpDir); nil != err { if err = gulu.Zip.Unzip(tmp, tmpDir); nil != err {
logging.LogErrorf("import S3 provider failed: %s", err) logging.LogErrorf("import S3 provider failed: %s", err)
ret.Code = -1 ret.Code = -1
@ -248,7 +249,22 @@ func importSyncProviderS3(c *gin.Context) {
return return
} }
tmp = filepath.Join(tmpDir, f.Filename[:len(f.Filename)-4]) entries, err := os.ReadDir(tmpDir)
if nil != err {
logging.LogErrorf("import S3 provider failed: %s", err)
ret.Code = -1
ret.Msg = err.Error()
return
}
if 1 != len(entries) {
logging.LogErrorf("invalid S3 provider package")
ret.Code = -1
ret.Msg = "invalid S3 provider package"
return
}
tmp = filepath.Join(tmpDir, entries[0].Name())
data, err = os.ReadFile(tmp) data, err = os.ReadFile(tmp)
if nil != err { if nil != err {
logging.LogErrorf("import S3 provider failed: %s", err) logging.LogErrorf("import S3 provider failed: %s", err)