示例#1
0
        public static async Task <InternalFileId> Parse(ITusFileIdProvider provider, string fileId)
        {
            if (!await provider.ValidateId(fileId))
            {
                throw new TusStoreException("Invalid file id");
            }

            return(new InternalFileId(fileId));
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TusDiskStore"/> class.
        /// </summary>
        /// <param name="directoryPath">The path on disk where to save files</param>
        /// <param name="deletePartialFilesOnConcat">True to delete partial files if a final concatenation is performed</param>
        /// <param name="bufferSize">The buffer size to use when reading and writing. If unsure use <see cref="TusDiskBufferSize.Default"/>.</param>
        /// <param name="fileIdProvider">The provider that generates ids for files. If unsure use <see cref="TusGuidProvider"/>.</param>
        public TusDiskStore(string directoryPath, bool deletePartialFilesOnConcat, TusDiskBufferSize bufferSize, ITusFileIdProvider fileIdProvider)
        {
            _directoryPath = directoryPath;
            _deletePartialFilesOnConcat = deletePartialFilesOnConcat;
            _fileRepFactory             = new InternalFileRep.FileRepFactory(_directoryPath);

            if (bufferSize == null)
            {
                bufferSize = TusDiskBufferSize.Default;
            }

            _maxWriteBufferSize = bufferSize.WriteBufferSizeInBytes;
            _maxReadBufferSize  = bufferSize.ReadBufferSizeInBytes;

            _fileIdProvider = fileIdProvider;
        }
示例#3
0
        public static async Task <InternalFileId> CreateNew(ITusFileIdProvider provider, string metadata)
        {
            var fileId = await provider.CreateId(metadata);

            return(new InternalFileId(fileId));
        }