Spaces:
Runtime error
Runtime error
// upload.js | |
const ftp = require("basic-ftp"); | |
const path = require("path"); | |
async function upload() { | |
const host = process.env["FTP_HOST"] || "ftpupload.net"; | |
const user = process.env["FTPname"]; | |
const password = process.env["FTPpsw"]; | |
const port = process.env["FTP_PORT"] || 21; | |
if (!user || !password) { | |
console.log("FTP環境変数が設定されていないため、アップロードをスキップします。"); | |
console.log("必要な環境変数: FTPname(ユーザー名), FTPpsw(パスワード)"); | |
return; | |
} | |
const client = new ftp.Client(); | |
client.ftp.verbose = true; | |
client.ftp.timeout = 300000; | |
console.log("FTPアップロードを開始します..."); | |
try { | |
console.log(`接続中: ${host}:${port} (ユーザー: ${user})`); | |
await client.access({ | |
host, | |
user, | |
password, | |
port, | |
secure: false, | |
}); | |
console.log("FTPサーバーへの接続に成功しました。"); | |
const remoteDir = "s4s-editor.ct.ws/htdocs/"; | |
console.log(`リモートディレクトリに移動または作成: ${remoteDir}`); | |
await client.ensureDir(remoteDir); | |
console.log("既存のリモートディレクトリの内容をクリア中..."); | |
await client.clearWorkingDir(); | |
const localDist = path.join(__dirname, "dist"); | |
console.log(`ローカルディレクトリをアップロード中: ${localDist}`); | |
await client.uploadFromDir(localDist); | |
console.log("✅ アップロードが完了しました。"); | |
} catch (err) { | |
console.error("❌ アップロード中にエラーが発生しました:"); | |
console.error(err); | |
} finally { | |
client.close(); | |
console.log("FTP接続を閉じました。"); | |
} | |
} | |
upload(); | |