fix files in linux
This commit is contained in:
@@ -106,17 +106,35 @@ utils.srcPath = function (srcDir, filename) {
|
||||
return `${srcDir}/${path.basename(files[0])}`
|
||||
}
|
||||
|
||||
utils.truncateFilename = function (filename, maxBytes = 255) {
|
||||
if (Buffer.byteLength(filename, 'utf8') <= maxBytes) {
|
||||
return filename
|
||||
}
|
||||
const ext = path.extname(filename)
|
||||
const base = path.basename(filename, ext)
|
||||
const maxBaseBytes = maxBytes - Buffer.byteLength(ext, 'utf8')
|
||||
let bytes = 0
|
||||
let i = 0
|
||||
while (i < base.length) {
|
||||
const charBytes = Buffer.byteLength(base[i], 'utf8')
|
||||
if (bytes + charBytes > maxBaseBytes) break
|
||||
bytes += charBytes
|
||||
i++
|
||||
}
|
||||
return base.slice(0, i) + ext
|
||||
}
|
||||
|
||||
utils.destPath = function (destDir, type, file) {
|
||||
let dest = `${destDir}/${type}/${file._id}/${file.name}`;
|
||||
const ext = path.extname(dest)
|
||||
let name = file.name
|
||||
const ext = path.extname(name)
|
||||
if (!ext || !/^\.[A-Za-z][A-Za-z0-9]*$/.test(ext)) {
|
||||
if (file.identify && file.identify.format) {
|
||||
dest += '.' + file.identify.format
|
||||
name += '.' + file.identify.format
|
||||
} else {
|
||||
dest += '.' + file.type.split('/')[1]
|
||||
name += '.' + file.type.split('/')[1]
|
||||
}
|
||||
}
|
||||
return dest
|
||||
return `${destDir}/${type}/${file._id}/${utils.truncateFilename(name)}`
|
||||
}
|
||||
|
||||
utils.exportFile = async function (context, collection, fileId) {
|
||||
|
||||
Reference in New Issue
Block a user