Пример #1
0
    def url(self, name):
        """
        Return public url or a signed url for the Blob.
        This DOES NOT check for existance of Blob - that makes codes too slow
        for many use cases.
        """
        name = self._normalize_name(clean_name(name))
        blob = self.bucket.blob(name)
        no_signed_url = (self.default_acl == 'publicRead'
                         or not self.querystring_auth)

        if not self.custom_endpoint and no_signed_url:
            return blob.public_url
        elif no_signed_url:
            return '{storage_base_url}/{quoted_name}'.format(
                storage_base_url=self.custom_endpoint,
                quoted_name=_quote(name, safe=b"/~"),
            )
        elif not self.custom_endpoint:
            return blob.generate_signed_url(self.expiration)
        else:
            return blob.generate_signed_url(
                expiration=self.expiration,
                api_access_endpoint=self.custom_endpoint,
            )
Пример #2
0
    def url(self, name):
        """
        Return public url or a signed url for the Blob.
        This DOES NOT check for existance of Blob - that makes codes too slow
        for many use cases.
        """
        name = self._normalize_name(clean_name(name))
        blob = self.bucket.blob(name)
        blob_params = self.get_object_parameters(name)
        no_signed_url = (
            blob_params.get('acl', self.default_acl) == 'publicRead' or not self.querystring_auth)

        if not self.custom_endpoint and no_signed_url:
            return blob.public_url
        elif no_signed_url:
            return '{storage_base_url}/{quoted_name}'.format(
                storage_base_url=self.custom_endpoint,
                quoted_name=_quote(name, safe=b"/~"),
            )
        elif not self.custom_endpoint:
            return blob.generate_signed_url(
                expiration=self.expiration, version="v4"
            )
        else:
            return blob.generate_signed_url(
                bucket_bound_hostname=self.custom_endpoint,
                expiration=self.expiration,
                version="v4",
            )
Пример #3
0
 def url(self, name):
     """
     Return public url or a signed url for the Blob.
     This DOES NOT check for existance of Blob - that makes codes too slow
     for many use cases.
     """
     name = self._normalize_name(clean_name(name))
     blob = self.bucket.blob(name)
     custom_endpoint = setting("GS_CUSTOM_ENDPOINT")
     if custom_endpoint == None:
         return blob.public_url
     else:
         custom_url = '{storage_base_url}/{quoted_name}'.format(
             storage_base_url=custom_endpoint,
             quoted_name=_quote(name, safe=b"/~"))
         print(custom_url)
         return custom_url
Пример #4
0
    def url(self, name):
        name = self._normalize_name(clean_name(name))
        blob = self.bucket.blob(name)
        no_signed_url = (
            self.default_acl == 'publicRead' or not self.querystring_auth
        )

        if not self.custom_endpoint and no_signed_url:
            return blob.public_url
        elif no_signed_url:
            return (
                '{storage_base_url}/download/storage/'
                'v1/b/test/o/{quoted_name}'.format(
                    storage_base_url=self.custom_endpoint,
                    quoted_name=_quote(name, safe=b"/~"),
                )
            )
        elif not self.custom_endpoint:
            return blob.generate_signed_url(self.expiration)
        else:
            return blob.generate_signed_url(
                expiration=self.expiration,
                api_access_endpoint=self.custom_endpoint,
            )