Add sshfs quirks to shared code in filesytstem.js

This commit is contained in:
Johannes Zellner
2020-06-05 13:45:25 +02:00
parent 330b4a613c
commit 3557fcd129

View File

@@ -63,8 +63,11 @@ function upload(apiConfig, backupFilePath, sourceStream, callback) {
// in test, upload() may or may not be called via sudo script
const BACKUP_UID = parseInt(process.env.SUDO_UID, 10) || process.getuid();
if (!safe.fs.chownSync(backupFilePath, BACKUP_UID, BACKUP_UID)) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to chown:' + safe.error.message));
if (!safe.fs.chownSync(path.dirname(backupFilePath), BACKUP_UID, BACKUP_UID)) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to chown:' + safe.error.message));
// see sshfs backend
if (!apiConfig._doNotChown) {
if (!safe.fs.chownSync(backupFilePath, BACKUP_UID, BACKUP_UID)) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to chown:' + safe.error.message));
if (!safe.fs.chownSync(path.dirname(backupFilePath), BACKUP_UID, BACKUP_UID)) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to chown:' + safe.error.message));
}
debug('upload %s: done.', backupFilePath);
@@ -128,8 +131,12 @@ function copy(apiConfig, oldFilePath, newFilePath) {
events.emit('progress', `Copying ${oldFilePath} to ${newFilePath}`);
// see sshfs backend
var cpOptions = apiConfig._doNotPreserveAttributes ? '-dR' : '-a';
// this will hardlink backups saving space
var cpOptions = apiConfig.noHardlinks ? '-a' : '-al';
cpOptions += apiConfig.noHardlinks ? '' : 'l';
shell.spawn('copy', '/bin/cp', [ cpOptions, oldFilePath, newFilePath ], { }, function (error) {
if (error) return events.emit('done', new BoxError(BoxError.EXTERNAL_ERROR, error.message));