I've been looking at tempurl.py and found that the problem occurs here:

    def _get_key(self, env, account):
        """
        Returns the X-Account-Meta-Temp-URL-Key header value for the
        account, or None if none is set.

        :param env: The WSGI environment for the request.
        :param account: Account str.
        :returns: X-Account-Meta-Temp-URL-Key str value, or None.
        """
        key = None
        memcache = env.get('swift.cache')
        if memcache:
            key = memcache.get('temp-url-key/%s' % account)
        if not key:
            newenv = make_pre_authed_env(env, 'HEAD', '/v1/' + account,
                                         self.agent)
            newenv['CONTENT_LENGTH'] = '0'
            newenv['wsgi.input'] = StringIO('')
            key = [None]

            def _start_response(status, response_headers, exc_info=None):
                for h, v in response_headers:
                    if h.lower() == 'x-account-meta-temp-url-key':
                        key[0] = v

            i = iter(self.app(newenv, _start_response))
            self.logger.info()
            try:
                i.next()
            except StopIteration:
                pass
            key = key[0]
            if key and memcache:
                memcache.set('temp-url-key/%s' % account, key, timeout=60)
        return key

The request get 403 forbidden and thus never gets the key in the first place. 
I'm looking at the github repo and the implementation there seems to have 
changed.


Mvh / Best regards
Morten Møller Riis
Gigahost ApS
m...@gigahost.dk




On Jul 10, 2013, at 6:24 PM, Morten Møller Riis <m...@gigahost.dk> wrote:

> I'm having trouble getting tempurl to work.
> 
> I set the "X-Account-Meta-Temp-Url-Key" metadata on the account. And a GET 
> request shows it's set correctly.
> 
> I've enabled it on the proxy server in /etc/swift/proxy-server.conf:
> 
> [DEFAULT]
> bind_port = 8080
> workers = 8
> user = swift
> 
> [pipeline:main]
> pipeline = healthcheck cache tempurl swauth proxy-server
> 
> [app:proxy-server]
> use = egg:swift#proxy
> allow_account_management = true
> account_autocreate = true
> 
> [filter:tempurl]
> use = egg:swift#tempurl
> 
> [filter:swauth]
> use = egg:swauth#swauth
> set log_name = swauth
> super_admin_key = <removed>
> default_swift_cluster = gigahost#https://<url>/v1#http://localhost:8080/v1
> 
> [filter:healthcheck]
> use = egg:swift#healthcheck
> 
> [filter:cache]
> use = egg:swift#memcache
> memcache_servers = 127.0.0.1:11211
> 
> When creating the tempurl's, even using the swift-temp-url program I get:
> 
> ~ $ curl -i 
> "https://<url>/v1/AUTH_224b1001-2c75-444c-aaef-30af13b9154c/000/206.pdf?temp_url_sig=387d79120a591e1cf6f4d4356f5c0a96fb49d202&temp_url_expires=1373438360"
> HTTP/1.1 401 Unauthorized
> Server: nginx
> Date: Wed, 10 Jul 2013 08:21:32 GMT
> Content-Type: text/plain
> Content-Length: 35
> Connection: keep-alive
> 
> 401 Unauthorized: Temp URL invalid
> 
> I've even tried running it locally on the proxy-server to localhost:8080, so 
> I'm sure it's not nginx doing any funny stuff.
> 
> Does anybody have any suggestions? I'm pretty lost :(
> 
> 
> Mvh / Best regards
> Morten Møller Riis
> Gigahost ApS
> m...@gigahost.dk
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to