Esempio n. 1
0
 def resolve_uri(self, data):
     uri, storage = get_uri_via_regex(data, prefixes=(url_scheme,))
     if not storage:
         return
     logger.debug("Found matching storage uri in task data value: {uri}".format(uri=uri))
     resolved_uri = self.resolve_gs(uri)
     return data.replace(uri, resolved_uri)
Esempio n. 2
0
 def can_resolve_url(self, url):
     # TODO: later check to the full prefix like "url.startswith(self.path_full)"
     # Search of occurrences inside string, e.g. for cases like "gs://bucket/file.pdf" or "<embed src='gs://bucket/file.pdf'/>"  # noqa
     _, storage = get_uri_via_regex(url, prefixes=(self.url_scheme, ))
     if storage == self.url_scheme:
         return True
     # if not found any occurrences - this Storage can't resolve url
     return False
Esempio n. 3
0
 def resolve_uri(self, data):
     try:
         uri, storage = get_uri_via_regex(data, prefixes=(url_scheme,))
         if not storage:
             return
         resolved_uri = resolve_s3_url(uri, self.get_client(), self.presign)
         return data.replace(uri, resolved_uri)
     except NoCredentialsError:
         logger.warning(f'No AWS credentials specified for {data}')
Esempio n. 4
0
 def resolve_uri(self, uri):
     try:
         extracted_uri, extracted_storage = get_uri_via_regex(
             uri, prefixes=(self.url_scheme, ))
         if not extracted_storage:
             logger.info(f'No storage info found for URI={uri}')
             return
         http_url = self.generate_http_url(extracted_uri)
         return uri.replace(extracted_uri, http_url)
     except Exception as exc:
         logger.error(f'Can\'t resolve URI={uri}. Reason: {exc}',
                      exc_info=True)