diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index bbdffe930..2715b52f9 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -95,6 +95,7 @@
"netImg2LocalAsset": "Convert network images to local images",
"releaseDate": "Release Date",
"pkgSize": "Package size",
+ "installSize": "Install Size",
"optimizeTypography": "Optimize typography",
"dragPosition": "Drag image to reposition",
"exportPDF0": "Page Size",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 3662fdbb8..d6f703766 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -95,6 +95,7 @@
"netImg2LocalAsset": "Convertir imágenes de red en imágenes locales",
"releaseDate": "Fecha de lanzamiento",
"pkgSize": "Tamaño del paquete",
+ "installSize": "Tamaño de instalación",
"optimizeTypography": "Insertar un espacio entre el chino y el occidental",
"dragPosition": "Arrastrar imagen para reposicionarla",
"exportPDF0": "Tamaño de la página",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index e14f8f9ff..483270a34 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -95,6 +95,7 @@
"netImg2LocalAsset": "Convertir des images réseau en images locales",
"releaseDate": "Date de sortie",
"pkgSize": "Taille du package",
+ "installSize": "Taille d'installation",
"optimizeTypography": "Optimiser la typographie",
"dragPosition": "Faites glisser l'image pour la repositionner",
"exportPDF0": "Taille de la page",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index c06fc94e5..10865b6da 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -95,6 +95,7 @@
"netImg2LocalAsset": "網絡圖片轉換為本地圖片",
"releaseDate": "發布日期",
"pkgSize": "包大小",
+ "installSize": "安裝大小",
"optimizeTypography": "優化排版",
"dragPosition": "拖動圖像重新定位",
"exportPDF0": "頁面大小",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 78b6a7024..31a8ad3c7 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -95,6 +95,7 @@
"netImg2LocalAsset": "网络图片转换为本地图片",
"releaseDate": "发布日期",
"pkgSize": "包大小",
+ "installSize": "安装大小",
"optimizeTypography": "优化排版",
"dragPosition": "上下拖动图片以调整位置",
"exportPDF0": "页面大小",
diff --git a/app/src/config/bazaar.ts b/app/src/config/bazaar.ts
index 6029ac438..c844344ba 100644
--- a/app/src/config/bazaar.ts
+++ b/app/src/config/bazaar.ts
@@ -266,7 +266,7 @@ export const bazaar = {
${window.siyuan.languages.releaseDate}
${data.hUpdated}
- ${window.siyuan.languages.pkgSize}
${data.hSize}
+ ${isDownloaded ? window.siyuan.languages.installSize : window.siyuan.languages.pkgSize}
${isDownloaded ? data.hInstallSize : data.hSize}
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts
index 196f584b9..afeb9238b 100644
--- a/app/src/types/index.d.ts
+++ b/app/src/types/index.d.ts
@@ -495,5 +495,6 @@ declare interface IBazaarItem {
version: string
modes: string[]
hSize: string
+ hInstallSize: string
hUpdated: string
}
diff --git a/kernel/bazaar/icon.go b/kernel/bazaar/icon.go
index 8251ca37c..e0ce0f1c4 100644
--- a/kernel/bazaar/icon.go
+++ b/kernel/bazaar/icon.go
@@ -124,6 +124,8 @@ func InstalledIcons() (ret []*Icon) {
continue
}
+ installPath := filepath.Join(util.IconsPath, dirName)
+
icon := &Icon{}
icon.Installed = true
icon.Name = iconConf["name"].(string)
@@ -134,10 +136,11 @@ func InstalledIcons() (ret []*Icon) {
icon.PreviewURL = "/appearance/icons/" + dirName + "/preview.png"
icon.PreviewURLThumb = "/appearance/icons/" + dirName + "/preview.png"
icon.Updated = iconDir.ModTime().Format("2006-01-02 15:04:05")
- icon.Size = iconDir.Size()
- icon.HSize = humanize.Bytes(uint64(icon.Size))
icon.HUpdated = formatUpdated(icon.Updated)
- readme, readErr := os.ReadFile(filepath.Join(util.IconsPath, dirName, "README.md"))
+ installSize, _ := util.SizeOfDirectory(installPath)
+ icon.InstallSize = installSize
+ icon.HInstallSize = humanize.Bytes(uint64(installSize))
+ readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md"))
if nil != readErr {
logging.LogWarnf("read install icon README.md failed: %s", readErr)
continue
diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go
index 5a000249a..27fcf52a0 100644
--- a/kernel/bazaar/package.go
+++ b/kernel/bazaar/package.go
@@ -50,16 +50,18 @@ type Package struct {
README string `json:"readme"`
- Installed bool `json:"installed"`
- Outdated bool `json:"outdated"`
- Current bool `json:"current"`
- Updated string `json:"updated"`
- Stars int `json:"stars"`
- OpenIssues int `json:"openIssues"`
- Size int64 `json:"size"`
- HSize string `json:"hSize"`
- HUpdated string `json:"hUpdated"`
- Downloads int `json:"downloads"`
+ Installed bool `json:"installed"`
+ Outdated bool `json:"outdated"`
+ Current bool `json:"current"`
+ Updated string `json:"updated"`
+ Stars int `json:"stars"`
+ OpenIssues int `json:"openIssues"`
+ Size int64 `json:"size"`
+ HSize string `json:"hSize"`
+ InstallSize int64 `json:"installSize"`
+ HInstallSize string `json:"hInstallSize"`
+ HUpdated string `json:"hUpdated"`
+ Downloads int `json:"downloads"`
}
func WidgetJSON(widgetDirName string) (ret map[string]interface{}, err error) {
diff --git a/kernel/bazaar/template.go b/kernel/bazaar/template.go
index 57fd6098b..6fd9185a7 100644
--- a/kernel/bazaar/template.go
+++ b/kernel/bazaar/template.go
@@ -124,6 +124,8 @@ func InstalledTemplates() (ret []*Template) {
continue
}
+ installPath := filepath.Join(util.DataDir, "templates", dirName)
+
template := &Template{}
template.Installed = true
template.Name = templateConf["name"].(string)
@@ -134,10 +136,11 @@ func InstalledTemplates() (ret []*Template) {
template.PreviewURL = "/templates/" + dirName + "/preview.png"
template.PreviewURLThumb = "/templates/" + dirName + "/preview.png"
template.Updated = templateDir.ModTime().Format("2006-01-02 15:04:05")
- template.Size = templateDir.Size()
- template.HSize = humanize.Bytes(uint64(template.Size))
template.HUpdated = formatUpdated(template.Updated)
- readme, readErr := os.ReadFile(filepath.Join(util.DataDir, "templates", dirName, "README.md"))
+ installSize, _ := util.SizeOfDirectory(installPath)
+ template.InstallSize = installSize
+ template.HInstallSize = humanize.Bytes(uint64(installSize))
+ readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md"))
if nil != readErr {
logging.LogWarnf("read install template README.md failed: %s", readErr)
continue
diff --git a/kernel/bazaar/theme.go b/kernel/bazaar/theme.go
index 3068a42d9..be03908d9 100644
--- a/kernel/bazaar/theme.go
+++ b/kernel/bazaar/theme.go
@@ -126,6 +126,8 @@ func InstalledThemes() (ret []*Theme) {
continue
}
+ installPath := filepath.Join(util.ThemesPath, dirName)
+
theme := &Theme{}
theme.Installed = true
theme.Name = themeConf["name"].(string)
@@ -137,10 +139,11 @@ func InstalledThemes() (ret []*Theme) {
theme.PreviewURL = "/appearance/themes/" + dirName + "/preview.png"
theme.PreviewURLThumb = "/appearance/themes/" + dirName + "/preview.png"
theme.Updated = themeDir.ModTime().Format("2006-01-02 15:04:05")
- theme.Size = themeDir.Size()
- theme.HSize = humanize.Bytes(uint64(theme.Size))
theme.HUpdated = formatUpdated(theme.Updated)
- readme, readErr := os.ReadFile(filepath.Join(util.ThemesPath, dirName, "README.md"))
+ installSize, _ := util.SizeOfDirectory(installPath)
+ theme.InstallSize = installSize
+ theme.HInstallSize = humanize.Bytes(uint64(installSize))
+ readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md"))
if nil != readErr {
logging.LogWarnf("read install theme README.md failed: %s", readErr)
continue
diff --git a/kernel/bazaar/widget.go b/kernel/bazaar/widget.go
index db3695fc1..2b176acc8 100644
--- a/kernel/bazaar/widget.go
+++ b/kernel/bazaar/widget.go
@@ -122,6 +122,8 @@ func InstalledWidgets() (ret []*Widget) {
continue
}
+ installPath := filepath.Join(util.DataDir, "widgets", dirName)
+
widget := &Widget{}
widget.Installed = true
widget.Name = widgetConf["name"].(string)
@@ -132,10 +134,11 @@ func InstalledWidgets() (ret []*Widget) {
widget.PreviewURL = "/widgets/" + dirName + "/preview.png"
widget.PreviewURLThumb = "/widgets/" + dirName + "/preview.png"
widget.Updated = widgetDir.ModTime().Format("2006-01-02 15:04:05")
- widget.Size = widgetDir.Size()
- widget.HSize = humanize.Bytes(uint64(widget.Size))
widget.HUpdated = formatUpdated(widget.Updated)
- readme, readErr := os.ReadFile(filepath.Join(util.DataDir, "widgets", dirName, "README.md"))
+ installSize, _ := util.SizeOfDirectory(installPath)
+ widget.InstallSize = installSize
+ widget.HInstallSize = humanize.Bytes(uint64(installSize))
+ readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md"))
if nil != readErr {
logging.LogWarnf("read install widget README.md failed: %s", readErr)
continue
diff --git a/kernel/model/assets.go b/kernel/model/assets.go
index f1461899c..076420bc6 100644
--- a/kernel/model/assets.go
+++ b/kernel/model/assets.go
@@ -288,7 +288,7 @@ func uploadCloud(sqlAssets []*sql.Asset) (err error) {
if fi, statErr := os.Stat(absAsset); nil != statErr {
logging.LogErrorf("stat file [%s] failed: %s", absAsset, statErr)
return statErr
- } else if util.CloudSingleFileMaxSizeLimit/10 <= fi.Size() {
+ } else if 10*1024*1024 <= fi.Size() {
logging.LogWarnf("file [%s] larger than 10MB, ignore uploading it", absAsset)
continue
}
diff --git a/kernel/util/file.go b/kernel/util/file.go
index 6f6e61758..174db57d0 100644
--- a/kernel/util/file.go
+++ b/kernel/util/file.go
@@ -190,23 +190,14 @@ func IsSubFolder(parent, sub string) bool {
return false
}
-const CloudSingleFileMaxSizeLimit = 96 * 1000 * 1000
-
-func SizeOfDirectory(path string, includeBigFile bool) (int64, error) {
- var size int64
- err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
+func SizeOfDirectory(path string) (size int64, err error) {
+ err = filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
if nil != err {
return err
}
if !info.IsDir() {
s := info.Size()
- if CloudSingleFileMaxSizeLimit < s {
- if includeBigFile {
- size += s
- }
- } else {
- size += s
- }
+ size += s
} else {
size += 4096
}
@@ -215,7 +206,7 @@ func SizeOfDirectory(path string, includeBigFile bool) (int64, error) {
if nil != err {
logging.LogErrorf("size of dir [%s] failed: %s", path, err)
}
- return size, err
+ return
}
func IsReservedFilename(baseName string) bool {
diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go
index ceedb265c..5445c3aa2 100644
--- a/kernel/util/runtime.go
+++ b/kernel/util/runtime.go
@@ -41,7 +41,7 @@ const (
)
func logBootInfo() {
- s, _ := SizeOfDirectory(DataDir, true)
+ s, _ := SizeOfDirectory(DataDir)
dataDirSize := humanize.Bytes(uint64(s))
logging.LogInfof("kernel is booting:\n"+