Commit Graph

32 Commits

Author SHA1 Message Date
Marius 52265b622d Expose concatenation support in filestore 2017-11-21 13:00:43 +01:00
Marius cc1df8e9ed Remove second unlock attempt from tests
Unlocking an already unlocked lock is not guaranteed to succeed
2017-03-23 12:23:05 +01:00
Marius d5004f85a1 Return detailed error when directory is missing
Fixes https://github.com/tus/tusd/issues/98
2017-01-26 21:46:06 +01:00
Marius 19c9576eb8 Use platform-independent paths inside file storage
Closes https://github.com/tus/tusd/issues/84
2017-01-04 20:25:08 +01:00
Marius 9753aae065 Use personal fork of nightlyone/filelock 2016-09-30 12:03:49 +02:00
Marius 513fe9fcf3 Correct linting issue and misspellings 2016-09-27 22:10:16 +02:00
Marius 055406a783 Do not ignore error returned from lock.Unlock() 2016-09-27 21:51:33 +02:00
Marius 96d9e5bbd4 Prevent making uploaded file executable for everyone
Closes #56
2016-07-25 20:59:01 +02:00
Marius be8fd83d0d Document functions for handling StoreComposers 2016-03-11 20:17:43 +01:00
Marius 27866110c3 Merge branch 'master' into composer 2016-02-21 23:39:37 +01:00
Marius eb9100e9bb Use stat(2) for calculating file's offset 2016-02-21 23:38:38 +01:00
Marius 21ae1c45a7 Add initial draft of StoreComposr 2016-02-21 23:25:35 +01:00
Marius ff11b6a274 Add test for FileStore.ConcatUploads 2016-01-23 22:55:08 +01:00
Marius 0e750291c9 Use assertions library for tests 2016-01-20 16:40:19 +01:00
Marius b6a28421af Extract concatenation into own interface 2016-01-20 15:33:17 +01:00
Marius bfde73ff89 Test interface implementations for data stores 2016-01-19 22:37:05 +01:00
Marius f6a5530df8 Integrate LockingStore into UnroutedHandler
The reason behind this drastic move was that sometimes a lock needs to
persist across multiple calls to a DataStore. For example, when a PATCH
request is received, following behaviour is wanted:
	* Obtain lock (LockUpload)
	* Get offset, size etc (GetInfo)
	* Write data (WriteChunk)
	* Release lock (UnlockUpload)
However, before this change, the lock would be release and then obtained again
after the GetInfo and before the WriteChunk call. This resulted in an
inefficient resource usage and even a possible race condition.

The effects of this change was:
* FileLocker is now directly integrated into FileStore and not sperarated
* LockingStore and the entire package has been removed
* MemoryLocker has been moved into its very own package
2015-12-26 21:23:09 +01:00
Marius 14285e971d Add documentation for FileLocker 2015-12-25 21:33:58 +01:00
Marius b4c0df187e Provide easier way for locking file storage 2015-12-19 00:21:34 +01:00
Marius 83587ca0f8 Add filestore.FileLocker 2015-12-19 00:02:11 +01:00
Marius 8d94d55320 Add package descriptions for documentation 2015-12-18 23:24:12 +01:00
Acconut 290fea5dac return new offset after successful PATCH request 2015-03-23 19:02:12 +01:00
Acconut c49f7bbf91 uppercase ID and URL to match golint 2015-03-23 17:58:13 +01:00
Acconut 5772ec458f close io.Reader in tests 2015-02-28 16:12:33 +01:00
Acconut 1659517825 test inferface implentation for FileStore 2015-02-28 14:49:52 +01:00
Acconut 9f94d0591b add support for Termination extension 2015-02-28 14:47:39 +01:00
Acconut 0c16aedc29 use tusd.FileInfo in DataStore.NewUpload 2015-02-16 17:53:50 +01:00
Acconut 0f79383af2 add test for filestore 2015-02-12 16:06:15 +01:00
Acconut e951dc39d3 change default file permission to 0775 2015-02-06 22:07:53 +01:00
Acconut 29100e3b5b add GET route for downloading uploads 2015-02-06 22:05:33 +01:00
Acconut f513d02938 add documentation 2015-02-01 16:17:56 +01:00
Acconut a70bd4cfa3 rewrite tusd
* expose tusd.DataStore and extracted FileStore
* use pat for routing
* allow absolute BasePaths
* requires StripPrefix
* add support for 1.0 core
* update date in license
2015-02-01 14:57:57 +01:00