public static string PreparePath(string objectName, FilesystemContext context) { if (objectName is null) { throw new ArgumentNullException(nameof(objectName)); } if (context is null) { throw new ArgumentNullException(nameof(context)); } if (Path.DirectorySeparatorChar != '/') { objectName = objectName.Replace('/', Path.DirectorySeparatorChar); } var path = context.FilePath + Path.DirectorySeparatorChar + objectName; if (Path.GetFullPath(path) != path) { throw new ArgumentOutOfRangeException(nameof(path), path, FormattableString.Invariant($"The object name \"{objectName}\" produces an insecure path \"{path}\"")); } return(path); }
public FilesystemObjectWriterLocker(FilesystemContext context, string lockName) { _context = context ?? throw new ArgumentNullException(nameof(context)); if (!LockNameFilter.IsMatch(lockName)) { throw new ArgumentException("Invalid filesystem lock name.", nameof(lockName)); } _lockName = lockName; }
public FilesystemObjectReader(FilesystemContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); }
public FilesystemObjectWriter(FilesystemContext context, FilesystemContext?recycleContext) { _context = context ?? throw new ArgumentNullException(nameof(context)); _recycleContext = recycleContext; }