parent
							
								
									3aa2a282f7
								
							
						
					
					
						commit
						bbc9885aa2
					
				|  | @ -13,23 +13,23 @@ import ( | ||||||
| 	"github.com/denverdino/aliyungo/cdn/auth" | 	"github.com/denverdino/aliyungo/cdn/auth" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // aliCdnStorageMiddleware provides a simple implementation of layerHandler that
 | // aliCDNStorageMiddleware provides a simple implementation of layerHandler that
 | ||||||
| // constructs temporary signed AliCDN URLs from the storagedriver layer URL,
 | // constructs temporary signed AliCDN URLs from the storagedriver layer URL,
 | ||||||
| // then issues HTTP Temporary Redirects to this AliCDN content URL.
 | // then issues HTTP Temporary Redirects to this AliCDN content URL.
 | ||||||
| type aliCdnStorageMiddleware struct { | type aliCDNStorageMiddleware struct { | ||||||
| 	storagedriver.StorageDriver | 	storagedriver.StorageDriver | ||||||
| 	baseURL   string | 	baseURL   string | ||||||
| 	urlSigner *auth.URLSigner | 	urlSigner *auth.URLSigner | ||||||
| 	duration  time.Duration | 	duration  time.Duration | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var _ storagedriver.StorageDriver = &aliCdnStorageMiddleware{} | var _ storagedriver.StorageDriver = &aliCDNStorageMiddleware{} | ||||||
| 
 | 
 | ||||||
| // newAliCdnLayerHandler constructs and returns a new AliCDN
 | // newAliCDNStorageMiddleware constructs and returns a new AliCDN
 | ||||||
| // LayerHandler implementation.
 | // layerHandler implementation.
 | ||||||
| // Required options: baseurl, authtype, privatekey
 | // Required options: baseurl, authtype, privatekey
 | ||||||
| // Optional options: duration
 | // Optional options: duration
 | ||||||
| func newAliCdnStorageMiddleware(storageDriver storagedriver.StorageDriver, options map[string]interface{}) (storagedriver.StorageDriver, error) { | func newAliCDNStorageMiddleware(storageDriver storagedriver.StorageDriver, options map[string]interface{}) (storagedriver.StorageDriver, error) { | ||||||
| 	// parse baseurl
 | 	// parse baseurl
 | ||||||
| 	base, ok := options["baseurl"] | 	base, ok := options["baseurl"] | ||||||
| 	if !ok { | 	if !ok { | ||||||
|  | @ -87,7 +87,7 @@ func newAliCdnStorageMiddleware(storageDriver storagedriver.StorageDriver, optio | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return &aliCdnStorageMiddleware{ | 	return &aliCDNStorageMiddleware{ | ||||||
| 		StorageDriver: storageDriver, | 		StorageDriver: storageDriver, | ||||||
| 		baseURL:       baseURL, | 		baseURL:       baseURL, | ||||||
| 		urlSigner:     urlSigner, | 		urlSigner:     urlSigner, | ||||||
|  | @ -96,11 +96,10 @@ func newAliCdnStorageMiddleware(storageDriver storagedriver.StorageDriver, optio | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // URLFor attempts to find a url which may be used to retrieve the file at the given path.
 | // URLFor attempts to find a url which may be used to retrieve the file at the given path.
 | ||||||
| // Returns an error if the file cannot be found.
 | func (ac *aliCDNStorageMiddleware) URLFor(ctx context.Context, path string, options map[string]interface{}) (string, error) { | ||||||
| func (ac *aliCdnStorageMiddleware) URLFor(ctx context.Context, path string, options map[string]interface{}) (string, error) { |  | ||||||
| 
 | 
 | ||||||
| 	if ac.StorageDriver.Name() != "oss" { | 	if ac.StorageDriver.Name() != "oss" { | ||||||
| 		context.GetLogger(ctx).Warn("the AliCdn middleware does not support this backend storage driver") | 		context.GetLogger(ctx).Warn("the AliCDN middleware does not support this backend storage driver") | ||||||
| 		return ac.StorageDriver.URLFor(ctx, path, options) | 		return ac.StorageDriver.URLFor(ctx, path, options) | ||||||
| 	} | 	} | ||||||
| 	acURL, err := ac.urlSigner.Sign(ac.baseURL+path, time.Now().Add(ac.duration)) | 	acURL, err := ac.urlSigner.Sign(ac.baseURL+path, time.Now().Add(ac.duration)) | ||||||
|  | @ -112,5 +111,5 @@ func (ac *aliCdnStorageMiddleware) URLFor(ctx context.Context, path string, opti | ||||||
| 
 | 
 | ||||||
| // init registers the alicdn layerHandler backend.
 | // init registers the alicdn layerHandler backend.
 | ||||||
| func init() { | func init() { | ||||||
| 	storagemiddleware.Register("alicdn", storagemiddleware.InitFunc(newAliCdnStorageMiddleware)) | 	storagemiddleware.Register("alicdn", storagemiddleware.InitFunc(newAliCDNStorageMiddleware)) | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue