php - 邮递员请求:ImportError: cannot import name DEFAULT_CIPHERS
问题描述
我正在使用 Red Hat EC2 实例来运行 AWS CLI 命令并使用 Glacier 和 S3 管理一些任务。我还在设计一个 Rest API 以执行我在 EC2 上部署的脚本。使用 Postman 向 EC2 的公共 DNS 地址发送 POST 请求,我的脚本将接收原始 JSON 并将其解码为我的 PHP 脚本将接收的参数。当我尝试在我的内部执行 AWS CLI 命令时遇到错误PHP 脚本。当我在终端中运行 AWS 命令时,它们会起作用。
我从这个线程中尝试过的事情
https://github.com/aws/aws-cli/issues/3542:
- pip install AWScli 而不是 pip install AWS
- 降级 AWSversions 和 Botocore
邮递员回应
Traceback (most recent call last):
File "/usr/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/lib/python2.7/site-packages/awscli/clidriver.py", line 17, in <module>
import botocore.session
File "/usr/lib/python2.7/site-packages/botocore/session.py", line 30, in <module>
import botocore.credentials
File "/usr/lib/python2.7/site-packages/botocore/credentials.py", line 42, in <module>
from botocore.utils import InstanceMetadataFetcher, parse_key_val_file
File "/usr/lib/python2.7/site-packages/botocore/utils.py", line 31, in <module>
import botocore.httpsession
File "/usr/lib/python2.7/site-packages/botocore/httpsession.py", line 7, in <module>
from urllib3.util.ssl_ import (
ImportError: cannot import name DEFAULT_CIPHERS
php脚本
exec("aws s3 cp s3://$BucketName /path/to/dir/ --recursive 2>&1",$output,$return);
我希望 AWS CLI 命令由 exec 命令执行并返回一个字符串输出,我会将其作为响应发回。
解决方案
通过运行此命令修复了此问题
sudo pip install awscli --force-reinstall --upgrade
推荐阅读
- css - 如何在 CSS 中将多行标题与标题基线对齐
- apache-spark - 如何在python中使用spark找出每个月的总金额
- raku - 如何重新加载 REPL 中使用的模块?
- react-native - 反应原生地图,通过点击标记在滚动视图卡上重新定位
- eclipse - Runner eclipse插件不显示未分类的文件夹
- java - 遍历列表并将 Callables 提交给 ExecutorService
- c# - 为什么在尝试使用实体框架执行查询时指定的强制转换无效?
- ruby-on-rails - SSL_connect 返回=1 errno=0 状态=错误:证书验证失败
- javascript - PhantomJS 中的滚动页面
- git - 如何从旧提交中恢复文件?