// 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();