aws中的aws cli和awcli驱动程序:如何设置端点?

问题描述 投票:0回答:1

我正在尝试使用Tensorflow和S3后端,使用本地S3服务器(运行minio)。它似乎使用awscli驱动程序进行s3通信,所以我仔细看了一下aws命令行界面。现在,我可以执行所需的配置(在cacerts和.aws / config和.aws / credentials中)以这种方式运行aws

aws --endpoint-url https://my-minio-server:9000 s3 ls 

我希望aws默认问这个服务器,这样我就可以做到

aws s3 ls

没有其他选择。我该如何配置?

python amazon-web-services amazon-s3 aws-cli minio
1个回答
0
投票

如果您还在与它斗争,这可能会有用,但我仍然更喜欢在AWS CLI端配置此方法。我还没有找到那种方法......

这是一个bash hack,如果.bashrc(或.bash_profile)的来源有效,通常就是这种情况。如果这没有意义,快速搜索像bash_profile and bashrc shell initialization这样的东西应该会给你一些更好的信息,我可以给你。

无论如何,我确信有很多方法可以做到这一点,但这里的想法是只使用与常规aws CLI命令不同的名称调用类似的函数。如果您正在调用s3命令,则新函数会添加端点URL。

# ~/.bashrc
# can be called using same args as AWS CLI
awsep () {
    # show help message if no params are passed
    if [ "$1" == "s3" ]; then
        aws --endpoint-url="<your url>" "${@:-help}"
    else
        aws "${@:-help}"
    fi
}

现在你可以调用它,确定你已经找到了你添加函数的文件;例如

$ . ~/.bashrc && awsep s3 ls

如果你不喜欢或者不能使用你创建的一些随机的新功能,你总是可以使用类似的黑客,这似乎更加贫民窟。目标是包装常规的aws CLI命令。这样做的方式几乎与您在上面阅读的第一个功能完全相同。唯一的区别是你命名你的函数aws而不是你想出的某个名字,你从函数内部引用了真正的aws CLI。

# ~/.bashrc
# can be called using same args as AWS CLI
aws () {
    # show help message if no params are passed
    if [ "$1" == "s3" ]; then
        /path/to/your/real/aws-cli --endpoint-url="<your url>" "${@:-help}"
    else
        /path/to/your/real/aws-cli "${@:-help}"
    fi
}

我的aws-cli碰巧像/Users/me/.pyenv/shims/aws,因为我用pip安装了AWS CLI,并使用pyenv来管理我的Pythons。你可能在不同的地方,但你可以通过运行像which aws之类的东西找到它,然后在你的.bashrc.bash_profile中创建该功能

我不认为后一种方法会咬你,但黑客可能会产生奇怪的副作用,我当然不是bash,AWS CLI,pip或任何其他零件和部件的专家,但它对我有用.. 。

我希望它有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.