56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
Notes on Go Swift
 | 
						|
=================
 | 
						|
 | 
						|
Make a builder style interface like the Google Go APIs?  Advantages
 | 
						|
are that it is easy to add named methods to the service object to do
 | 
						|
specific things.  Slightly less efficient.  Not sure about how to
 | 
						|
return extra stuff though - in an object?
 | 
						|
 | 
						|
Make a container struct so these could be methods on it?
 | 
						|
 | 
						|
Make noResponse check for 204?
 | 
						|
 | 
						|
Make storage public so it can be extended easily?
 | 
						|
 | 
						|
Rename to go-swift to match user agent string?
 | 
						|
 | 
						|
Reconnect on auth error - 401 when token expires isn't tested
 | 
						|
 | 
						|
Make more api compatible with python cloudfiles?
 | 
						|
 | 
						|
Retry operations on timeout / network errors?
 | 
						|
- also 408 error
 | 
						|
- GET requests only?
 | 
						|
 | 
						|
Make Connection thread safe - whenever it is changed take a write lock whenever it is read from a read lock
 | 
						|
 | 
						|
Add extra headers field to Connection (for via etc)
 | 
						|
 | 
						|
Make errors use an error heirachy then can catch them with a type assertion
 | 
						|
 | 
						|
 Error(...)
 | 
						|
 ObjectCorrupted{ Error }
 | 
						|
 | 
						|
Make a Debug flag in connection for logging stuff
 | 
						|
 | 
						|
Object If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since etc
 | 
						|
 | 
						|
Object range
 | 
						|
 | 
						|
Object create, update with X-Delete-At or X-Delete-After
 | 
						|
 | 
						|
Large object support
 | 
						|
- check uploads are less than 5GB in normal mode?
 | 
						|
 | 
						|
Access control CORS?
 | 
						|
 | 
						|
Swift client retries and backs off for all types of errors
 | 
						|
 | 
						|
Implement net error interface?
 | 
						|
 | 
						|
type Error interface {
 | 
						|
    error
 | 
						|
    Timeout() bool   // Is the error a timeout?
 | 
						|
    Temporary() bool // Is the error temporary?
 | 
						|
}
 |