Commit Graph

861 Commits

Author SHA1 Message Date
Marius 290d03aff9 Add locking using Consul 2016-02-11 16:04:50 +01:00
Marius c7ce14fbdc Fix documentation styling for memorylocker 2016-02-11 15:58:36 +01:00
Marius 11b92b91c2 Provide better URL to S3 consistency models 2016-02-11 12:23:46 +01:00
Marius bbf706622c Implement Concatentation extension for S3Store 2016-02-03 21:18:21 +01:00
Marius 9cd15b2a0f Expose additional interfaces in LimitedStore
Previously if a DataStore would be embedded as a TerminaterDataStore inside
a LimitedStore. This makes additional interfaces, such as GetReaderDataStore,
inaccessible since we are not able to cast a LimitedStore to
GetReaderDataStore. The solution was to manually expose the specific methods
although this is definitly not the nicest solution.
2016-01-27 15:18:37 +01:00
Marius ff11b6a274 Add test for FileStore.ConcatUploads 2016-01-23 22:55:08 +01:00
Marius bf4762ffd5 Remove unused GetReader function from tests
Obsolent sine the DataStore interface does not require
GetReader() any more.
2016-01-23 22:45:31 +01:00
Marius db9204927d Merge branch 'forwarded-host' 2016-01-23 14:11:47 +01:00
Marius 35b51812d5 Use correct flag for passing ldflags to goxc 2016-01-23 13:19:03 +01:00
Marius 2a84435974 Add version information for tusd builds 2016-01-23 12:43:50 +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 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 27d6ade187 Add RespectForwardedHeaders option to handlers
When activated, X-Forwarded-* and Forwarded headers will be checked for a
hostname and protocol used for generating absolute URLs.

Addresses #38
2016-01-16 15:27:35 +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