Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么S3(与boto和django存储一起使用)甚至为公共文件提供签名url?_Python_Django_Amazon S3_Boto_Django Storage - Fatal编程技术网

Python 为什么S3(与boto和django存储一起使用)甚至为公共文件提供签名url?

Python 为什么S3(与boto和django存储一起使用)甚至为公共文件提供签名url?,python,django,amazon-s3,boto,django-storage,Python,Django,Amazon S3,Boto,Django Storage,这很奇怪。我有公共文件和私人文件。我想要公共文件中的普通URL,私人文件中的签名URL 我尝试将AWS\u QUERYSTRING\u AUTH更改为False,默认情况下,在django存储中是这样的 但是,当我更改它时,我的私有文件url没有签名(因此无法访问) 可能是我错过了什么。什么是解决方案 提前感谢。AWS\u QUERYSTRING\u AUTH设置默认行为,但您可以在创建s3Botostrage的实例时通过向初始值设定项传递附加参数来覆盖它: S3BotoStorage(buck

这很奇怪。我有公共文件和私人文件。我想要公共文件中的普通URL,私人文件中的签名URL

我尝试将
AWS\u QUERYSTRING\u AUTH更改为False
,默认情况下,在django存储中是这样的

但是,当我更改它时,我的私有文件url没有签名(因此无法访问)

可能是我错过了什么。什么是解决方案


提前感谢。

AWS\u QUERYSTRING\u AUTH
设置默认行为,但您可以在创建
s3Botostrage
的实例时通过向初始值设定项传递附加参数来覆盖它:

S3BotoStorage(bucket="foo", querystring_auth=False)

因此,如果您有一个bucket private和另一个bucket public,您可以适当地设置
querystring\u auth
参数,并获得所需的行为。

将其放入
设置中。py

AWS_QUERYSTRING_AUTH = False

另一种解决方法是在设置中设置AWS_S3_自定义_域。 @见:


(使用boto==2.38.0和django storages redux==1.3进行测试)

谢谢,但我有一个具有不同目录的存储桶。仍然没有问题。两个独立的实例可以做到这一点,`s3botostrage(bucket=“foo”,location=“bar”,querystring\u auth=False)``您的私有/公共分离是媒体/静态的,您可以将不同的实例设置为后端。将
AWS\u querystring\u auth
设置为
False
对我来说很有效,并且在代码中看起来很难()对于Python2和Python3。我正在运行这些版本:boto==2.42.0 django存储==1.5.1