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)
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
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}')
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)