Commit Graph

299 Commits

Author SHA1 Message Date
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 c9207d8c5f Extract GetReader into own interface 2016-01-19 22:32:15 +01:00
Marius 29047eddc2 Add support for meta data in S3Store 2016-01-19 21:39:24 +01:00
Marius 1e40295e88 Do not run test verbose on AppVeyor 2016-01-17 15:55:00 +01:00
Marius 882214982d Clone submodules on AppVeyor 2016-01-17 15:52:41 +01:00
Marius b67b303594 Specify packages to test for AppVeyor 2016-01-17 15:47:48 +01:00
Marius 3a305424df Use vendoring on AppVeyor 2016-01-17 15:44:19 +01:00
Marius 73e3adbb24 Test against Go 1.6 Beta 2 2016-01-17 15:34:58 +01:00
Marius cbf08de13d Add documentation for FinisherDataStore 2016-01-17 15:34:27 +01:00
Marius 101648e382 Add documentation about S3Store 2016-01-17 15:30:19 +01:00
Marius 82e29becc4 Merge branch 'master' into s3 2016-01-16 16:14:13 +01:00
Marius 810fa89494 Add support for upload termination in S3Store 2016-01-16 16:12:37 +01:00
Marius cecccf4162 Deploy using Go 1.5 2016-01-13 22:25:55 +01:00
Marius 3c45d40890 Test against Go 1.6 Beta 1 on Travis 2016-01-13 22:25:16 +01:00
Marius 28a7b9d950 Add S3 option to tusd(1) 2016-01-13 22:24:41 +01:00
Marius cb0f8dac6a Add isAwsError helper method 2016-01-12 22:21:05 +01:00
Marius e64e99eec3 Update dependencies 2016-01-10 13:28:23 +01:00
Marius a1141b836f Squashed commit of the following:
commit 0203e5c57f397865fd5a95b7f91f5f27fd306431
Author: Marius <maerious@gmail.com>
Date:   Sat Jan 9 20:39:46 2016 +0100

    Update dependencies

commit be5b2b8f62b4644fd9c52a838fe68d98b4eae8e4
Author: Marius <maerious@gmail.com>
Date:   Sat Jan 9 19:17:32 2016 +0100

    Pull dependencies from vendor/ in /home/marius/workspace/go for Go < 1.5

commit e631bbcc59e4c9e5e928b172b4c6aab6eb71274d
Author: Marius <maerious@gmail.com>
Date:   Sat Jan 9 19:15:20 2016 +0100

    Vendor dependencies
2016-01-09 20:44:06 +01:00
Marius a6e85ecf7e Only install own dependencies 2016-01-08 19:23:59 +01:00
Marius bdf144e9a1 Restrict tests on travis to internal packages 2016-01-08 14:40:34 +01:00
Marius 4b38221157 Exclude special directories from tests on Travis 2016-01-05 19:21:59 +01:00
Marius 83f71dcd92 Add dependencies using vendoring technique 2016-01-05 19:10:21 +01:00
Marius cfba2e3b94 Merge branch 'master' into s3 2016-01-05 18:22:26 +01:00
Marius 2073521776 Add tests for S3Store 2016-01-05 18:21:53 +01:00
Marius 0e8ab11170 Run non-verbose tests on Travis 2016-01-04 19:35:43 +01:00
Marius 367642c9fc Move to container-based infratructure on Travis 2016-01-04 19:29:12 +01:00
Marius 2f83ed02f0 Merge branch 'master' of github.com:tus/tusd 2016-01-04 19:22:16 +01:00
Marius 8c948613b3 Test all packages on Travis 2016-01-04 19:21:58 +01:00
Marius b5e874626a Display AppVeyor status for master branch 2015-12-27 13:13:12 +01:00
Marius b6d67debee Merge branch 'master' into s3
Conflicts:
	datastore.go
2015-12-27 00:48:06 +01:00
Marius 4af7434c10 Move terminating method in own interface
In addition, the DELETE handler is only provided if the TerminaterDataStore
interface is implemented.
2015-12-27 00:44:02 +01:00
Marius f96e2614fc Test against Go 1.5 and 1.6 on Travis 2015-12-26 22:36:38 +01:00
Marius 28eb393dc5 Use HTTPS- instead of SSH url for submodule 2015-12-26 22:34:25 +01:00
Marius 4ee2a09510 Use Go's vendoring for dependencies 2015-12-26 22:28:36 +01:00
Marius b80b018a80 Merge pull request #37 from tus/lockingstore
Make locking implementation flexible
2015-12-26 21:36:40 +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 cfabbf5ffb Extract tests into tusd_test package 2015-12-25 22:33:27 +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
Marius 97f2efb6e5 Rename New to NewMemoryLocker 2015-12-18 23:21:13 +01:00
Marius 47492260e8 Add documentation for MemoryLocker 2015-12-18 23:20:52 +01:00
Marius b03ddd1d4c Add documentation for package lockingstore 2015-12-18 23:13:00 +01:00
Marius 4073f4ae64 Add test for LockingStore 2015-12-15 22:59:58 +01:00
Marius b3fb3a3f5d Ensure MemoryLocker implements Locker in tests 2015-12-15 22:04:12 +01:00
Marius 45936806a9 Add test for lockingstore.MemoryLocker 2015-12-09 20:48:41 +01:00
Marius 49d7c2ff78 Separate locking into data store implementation
The goal is to allow different locking mechanism to be used for different
storages. For example, in-memory for very few uploads, a file locker in
conjunction with the FileStore or an external service, such as ZooKeeper.
2015-12-09 20:25:08 +01:00
Marius 063d4a2442 Add first draft for s3Store 2015-12-08 22:26:37 +01:00