INNER CODE UNIT · JavaScript

safeWrite

wangshengithub/staticshield · src/server.js:36

function safeWrite(tmpDir, fileRel, content, isDataUri) {
  var fp = resolveSafely(tmpDir, fileRel);
  fs.mkdirSync(path.dirname(fp), { recursive: true });
  if (isDataUri) { var m = /^data:[^;]*;base64,(.*)$/s.exec(content); fs.writeFileSync(fp, Buffer.from(m ? m[1] : content, 'base64')); }
  else fs.writeFileSync(fp, content);
}
async function doEncrypt(body) {
  if (!body || typeof body !== 'object') throw new Error('请求体格式错误');
  var password = body.password, files = body.files, mode = body.mode || 'single';
  if (!password) throw new Error('密码不能为空');
  if (!Array.isArray(files) || files.length === 0) throw new Error('未提供任何文件');
  var html, stats = {};
  if (mode === 'site') {
    var siteTmp = fs.mkdtempSync(path.join(os.tmpdir(), 'ss-gui-'));
    try {
      for (var si = 0; si < files.length; si++) safeWrite(siteTmp, files[si].path, files[si].content, files[si].isDataUri);
      var siteRes = await batchEncryptDir(siteTmp, password, { useSha512: !!body.useSha512, hint: body.hint, rememberDays: body.rememberDays, logo: body.logo });
      var zipFiles = require('./zip').zipFiles;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…