避免Django s3 URL剥离

避免Django s3 URL剥离,django,amazon-s3,Django,Amazon S3,我正在尝试设置一个迷你django应用程序,允许用户从s3下载文件。 我编写了一个简单的python函数(当然使用boto)来获取正确的url,但是当我使用django处理url时,url被剥离 这是我的urlfetcher: def s3url(key): s3 = None try: s3 = boto.connect_s3(aws_access_key_id=settings.access_id,aws_secret_access_key=settings.

我正在尝试设置一个迷你django应用程序,允许用户从s3下载文件。 我编写了一个简单的python函数(当然使用boto)来获取正确的url,但是当我使用django处理url时,url被剥离

这是我的urlfetcher:

def s3url(key):
    s3 = None
    try:
        s3 = boto.connect_s3(aws_access_key_id=settings.access_id,aws_secret_access_key=settings.secret_key,is_secure=False)
    except boto.exception.S3ResponseError:
        print "[S3] unable to connect to s3!"
        return None
    url = s3.generate_url( settings.EXPIRES_IN, 'GET', bucket=settings.BUCKET, key=key)
    return url
这是我的django观点

def gets3(request,key):
    url = aws.s3url(key)
    return HttpResponse(url)
在django shell中尝试该视图时,我得到以下结果:

>>> r = manager.s3_views.gets3('xxxxx/5/2014-03-10_08:37:39.274998-d3421964017734f96198c74d853eb2e7')
>>> print r
Content-Type: text/html; charset=utf-8

http://BUCKETNAME.s3.amazonaws.com/xxxxx/5/2014-03-10_08%3A37%3A39.274998-d3421964017734f96198c74d853eb2e7?Signature=FVWZPBnoOAOm5PuNOajQ3Ce5GrM%3D&Expires=1395310316&AWSAccessKeyId=AKIAI4QC5JE7YMBEITJA
这是正确的,但当我将其与django runserve一起使用时,我只得到:

http://BUCKETNAME.s3.amazonaws.com/?Signature=PhR4IfGwKHsryp2fAllLPSc9Bds%3D&Expires=1395311016&AWSAccessKeyId=AKIAI4QC5JE7YMBEITJA
救命啊

解开了这个谜

urls.py
中的正则表达式错误,因此它没有向
gets3
函数传递任何参数。 因此,函数返回一个剥离URL:(