小编Arp*_*yal的帖子

限制我的移动应用程序访问的cloudfront signed url(GET Request)

我正在尝试使用签名网址将Amazon cloudfront的视频文件提供给我的应用用户.我已经使用文档创建了签名的URL ,它运行得非常好.生成的url具有签名,expires和keypair_id.

问题

我想要实现的是仅当请求从我的特定移动应用程序进入时才将视频文件提供给用户.我正在寻找一个解决方案来授权云端方面的请求(在已签名的URL上).

因此,如果用户尝试使用我们的移动应用访问标识的URL,我们将要服务于内容,但如果URL是从Web或其他任何移动客户端进行访问,我们想提出一个授权错误或404.

我已经浏览了文档和几个博客,希望实现上述目标,每个人都指出了我使用签名网址的方向.但是仍然可以通过浏览器直接访问网址.

此外,我想知道,为什么一个标识的URL具有签名作为GET参数,因为如果签名被删除的内容仍然是可以访问使用url没有GET查询参数.

Signed Url: http://d2z7g8y6l5f1j0.cloudfront.net/test_upload.mp4?Expires=1456828601&Signature=R3tljkRxGM9se2S4IJT908sT2BBGNJkpWE9IE-v1GAt-QY0WcaEVEY-OYvSSlhFK1ueNcWhgAscJQ7J~qUKZUt3XS5raKU3kj9STKYYzCemRRm1j5DE8XfhjRKRggSSw138F0lr~tDt~TLoJ7Pj9NNvoGl42jNNLaET7~d9pkAGAh-sNpoS1gz~d0CZTo41ZTFMIzshgZNxrWpCOR0PrLHfRALy2H9-Z9w4XfU4v66WEseVQ3FWyeXFyV0UO2S-KIXbe1ODiHFC6Ae6AJlWzoFfIGAxiLymmtUMJgeQHnu80u97ysMbbNYvek-S0tQBkkID3zC~tDQH~EjXPYcNUbA__&Key-Pair-Id=APKAINPV56WSGDECRTPQ

^^^ Serves the content

Original Url: http://d2z7g8y6l5f1j0.cloudfront.net/test_upload.mp4

^^^ Still serves the content
Run Code Online (Sandbox Code Playgroud)

上面的网址有什么区别?

进一步问题

我生成的已签名网址仍在提供内容,因此过期GET查询参数的重点是什么,或问题是我是否正确设置了网址.

我按照以下方法生成了我的签名网址:

from boto.cloudfront import CloudFrontConnection
from boto.cloudfront.distribution import Distribution

# establish cloudfront connection
cloudfront_connection = CloudFrontConnection('AWS_KEY', 'AWS_SECRET')
expiry_time = int(time.time() + 3000)

#get the distribution
distribution = Distribution(connection = cloudfront_connection, domain_name = '<specified_domain_name>', 'id' = '<specified distribution id>')

#create signed url
signed_url = distribution.create_signed_url(url = '<cloudfront_url>', keypair_id = '<cloudfront keypair_id>', expire_time = …
Run Code Online (Sandbox Code Playgroud)

url authorization amazon-s3 amazon-web-services amazon-cloudfront

9
推荐指数
1
解决办法
602
查看次数

作为守护程序运行celery不会创建PID文件

这几天我一直在绞尽脑汁,我已经看到了stackoverflow上的其他问题(因为这是一个重复的问题)而且我已经尝试了一切来使这项工作,工人运行良好,但芹菜没有开始作为一个过程.

我运行命令:

sudo service celeryd start
Run Code Online (Sandbox Code Playgroud)

我得到:

celery init v10.1.
Using config script: /etc/default/celeryd
celery multi v3.1.23 (Cipater)
> Starting nodes...
    > worker1@ip-172-31-21-215: OK
Run Code Online (Sandbox Code Playgroud)

我跑:

sudo service celeryd status
Run Code Online (Sandbox Code Playgroud)

我得到:

celery init v10.1.
Using config script: /etc/default/celeryd
celeryd down: no pidfiles found
Run Code Online (Sandbox Code Playgroud)

celeryd下来:没有PID文件发现错误是什么,我需要解决的问题.

我知道这个问题是重复的,但在这个问题上仍然跟我一起,因为我已经尝试了所有这些,但仍然无法解决问题.

我正在Amazon Web Services上部署此脚本.我正在使用虚拟环境.

init.d脚本直接从这里获取,然后我给了它所需的权限.

这是我的配置文件:

# Names of nodes to start
#   most people will only start one node:
CELERYD_NODES="worker1"
#   but you can also start multiple and configure settings …
Run Code Online (Sandbox Code Playgroud)

django daemon celery

9
推荐指数
1
解决办法
3055
查看次数

通过Kubernetes仪表板主机访问Kubernetes API

因此,我们的想法是Kubernetes仪表板访问Kubernetes API可以使我们对Kubernetes集群中运行的不同``种类''进行漂亮的可视化,而访问Kubernetes仪表板的方法是通过Kubernetes API的代理机制实现的,然后可以将其公开给用于公共访问的公共主机。

我的问题是,是否有可能通过该Kubernetes Dashboard的公开地址访问Kubernetes集群内其他服务的Kubernetes API代理机制?

kubernetes kubernetes-dashboard

5
推荐指数
1
解决办法
371
查看次数