chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:46:20 +08:00
commit eb21b65815
830 changed files with 113645 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
const { FtpSrv } = require('@electerm/ftp-srv')
const path = require('path')
const fs = require('fs')
// Create FTP root directory if it doesn't exist
const ftpRoot = path.join(__dirname, 'ftp-root')
if (!fs.existsSync(ftpRoot)) {
fs.mkdirSync(ftpRoot)
}
const ftpServer = new FtpSrv({
url: 'ftp://0.0.0.0:21',
anonymous: false,
root: ftpRoot
})
// Handle user login
ftpServer.on('login', ({ username, password }, resolve, reject) => {
// Simple authentication
console.log('login', username, password)
if (username === 'test' && password === 'test123') {
return resolve({ root: ftpRoot })
}
return reject(new Error('Invalid username or password'))
})
// Log events
ftpServer.on('client-error', ({ connection, context, error }) => {
console.log('Client error', error)
})
ftpServer.on('STOR', (error, fileName) => {
if (error) {
console.log('Error uploading file:', error)
} else {
console.log('File uploaded:', fileName)
}
})
ftpServer.on('RETR', (error, fileName) => {
if (error) {
console.log('Error downloading file:', error)
} else {
console.log('File downloaded:', fileName)
}
})
// Start server
ftpServer.listen()
.then(() => {
console.log('FTP server is running at port 21')
console.log('Username: test')
console.log('Password: test123')
console.log('FTP root directory:', ftpRoot)
})
.catch(err => {
console.log('Error starting FTP server:', err)
})
// Handle shutdown
process.on('SIGTERM', () => {
ftpServer.close()
.then(() => {
console.log('FTP server closed')
process.exit(0)
})
})