示例#1
0
 public GoogleCloudStorageSource(
     Uri uri,
     GoogleStorageCredential credential        = default,
     IHttpClientFactory?httpClientFactory      = default,
     ILogger <GoogleCloudStorageSource>?logger = default)
     : base(uri, credential, default, default, default, httpClientFactory, logger)
 {
 }
示例#2
0
 public GoogleCloudStorageDestination(
     Uri uri,
     GoogleStorageCredential credential = default,
     string?contentType  = default,
     string?cacheControl = default,
     bool isPublic       = false,
     IHttpClientFactory?httpClientFactory           = default,
     ILogger <GoogleCloudStorageDestination>?logger = default)
     : base(uri, credential, contentType, cacheControl, isPublic, httpClientFactory, logger)
 {
 }
 public IImageSource CreateSource(Uri?uri, Func <IImageSource> next)
 {
     if (null != uri && uri.Scheme == "gs")
     {
         var q           = HttpUtility.ParseQueryString(uri.Query);
         var accessToken = q.Get(UriParameters.AccessToken) ?? throw new InvalidOperationException("No access token provided in GCS source uri.");
         return(new GoogleCloudStorageSource(
                    uri: StripQuery(uri),
                    credential: GoogleStorageCredential.ViaAccessToken(accessToken),
                    httpClientFactory: _httpClientFactory,
                    logger: _loggerFactory.CreateLogger <GoogleCloudStorageSource>()
                    ));
     }
     return(next());
 }
 public IImageDestination CreateDestination(Uri?uri, Func <IImageDestination> next)
 {
     if (null != uri && uri.Scheme == "gs")
     {
         var q            = HttpUtility.ParseQueryString(uri.Query);
         var accessToken  = q.Get(UriParameters.AccessToken) ?? throw new InvalidOperationException("No access token provided in GCS destination uri.");
         var cacheControl = q.Get(UriParameters.CacheControl);
         var contentType  = q.Get(UriParameters.ContentType);
         var rawPublic    = q.Get(UriParameters.Public);
         var isPublic     = !string.IsNullOrEmpty(rawPublic) && _truthy.Contains(rawPublic);
         return(new GoogleCloudStorageDestination(
                    uri: StripQuery(uri),
                    credential: GoogleStorageCredential.ViaAccessToken(accessToken),
                    contentType: contentType,
                    cacheControl: cacheControl,
                    isPublic: isPublic,
                    httpClientFactory: _httpClientFactory,
                    logger: _loggerFactory.CreateLogger <GoogleCloudStorageDestination>()
                    ));
     }
     return(next());
 }