Python SDK调用示例

本文以Python语言为例,为您介绍如何使用OpenAPI查询文件系统信息的完整示例。

查看OpenAPI文档

通过阅读API概览得知,查询文件系统信息的OpenAPIDescribeFileSystems。请您根据文档,了解调用该接口需要准备的数据和权限。

创建RAM用户并完成授权

说明

如您已创建RAM用户且已完成授权,可跳过此步骤。

  1. 创建RAM用户。

    1. 访问RAM用户列表,单击创建用户

    2. 设置登录名称nas-openapi-operator,选择访问方式OpenAPI调用访问

    3. 单击确定,创建RAM用户并保存AccessKey IDAccessKey Secret信息。

  2. 完成授权。

    1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

    2. 在文本框中搜索AliyunNAS,选择AliyunNASReadOnlyAccess策略。

      重要

      AliyunNASFullAccess拥有实际的操作权限,您也可以按需选择AliyunNASReadOnlyAccess权限(具有访问、查看权限)或进行自定义策略,更多详情请参见使用RAM权限策略控制NAS访问权限

    3. 单击确定,完成授权操作。

调用OpenAPI

本文以阿里云Python语言SDK方式调用OpenAPI为例,其他语言SDK的用法也类似,更多信息请参见文件存储(NAS/CPFS)SDK

准备Python环境

下载并安装Python 3。如您已安装Python,查看Python版本的命令示例:python --version

配置环境变量

为避免将AccessKey硬编码到业务代码中带来的安全风险,建议您采用配置环境变量的方法管理AccessKey。本文以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET为例。变量名称可以根据实际情况进行替换,例如NAS_ACCESS_KEY_IDNAS_ACCESS_KEY_SECRET

重要

环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

LinuxmacOS系统

通过export命令配置临时环境变量

重要

使用export命令配置的临时环境变量仅当前会话有效,当会话退出之后所设置的环境变量就会丢失。

  • 配置AccessKey ID并回车。

    # 将<ACCESS_KEY_ID>替换为您自己的AccessKey ID。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
  • 配置AccessKey Secret并回车。

    # 将<ACCESS_KEY_SECRET>替换为您自己的AccessKey Secret。
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
  • 验证是否配置成功。

    执行echo $ALIBABA_CLOUD_ACCESS_KEY_ID命令,如果返回正确的AccessKey ID,则说明配置成功。

通过配置文件配置永久环境变量

  1. 创建.bash_profile文件

    说明

    如果是第一次设置环境变量,可以使用touch ~/.bash_profile创建一个配置文件,如果已经存在配置文件,则使用vim ~/.bash_profile命令直接编辑文件。

    touch ~/.bash_profile
    vim ~/.bash_profile
  2. 配置.bash_profile文件

    # 将以下命令中的<ACCESS_KEY_ID>和<ACCESS_KEY_SECRET>替换为您自己的AccessKey IDAccessKey Secret。
    # 变量名称可以根据实际情况进行替换,例如OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>

    编辑完成后保存退出。

  3. 使用.bash_profile文件

    # 使配置文件生效
    source ~/.bash_profile
    # 显示配置是否生效
    echo $ALIBABA_CLOUD_ACCESS_KEY_ID

    若返回正确的AccessKey ID,则说明配置成功。

重要

环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

Windows系统

通过图形用户界面GUI

  • 操作步骤

    以下为Windows 10中通过图形用户界面设置环境变量的步骤。

    在桌面右键单击此电脑,选择属性>高级系统设置>环境变量>系统变量/用户变量>新建,完成以下配置:

    变量

    示例值

    AccessKey ID

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_ID

    • 变量值:LTAI4GDty8ab9W4Y1D****

    AccessKey Secret

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 变量值:IrVTNZNy5yQelTETg0cZML3TQn****

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过命令行提示符CMD

  • 操作步骤

    以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。

    setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M

    其中/M表示系统级环境变量,设置用户级环境变量时可以不携带该参数。

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过Windows PowerShell

PowerShell中,设置新的环境变量(对所有新会话都有效):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)

为所有用户设置环境变量(需要管理员权限):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)

设置临时的环境变量(仅当前会话有效):

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"

PowerShell中,执行Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_IDGet-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET命令。若返回正确的AccessKey,则说明配置成功。

安装依赖

在终端设备中,逐条运行如下命令,安装环境依赖。

pip install alibabacloud_nas20170626==2.0.3
pip3 install alibabacloud_tea_console

下载示例代码

  1. 访问DescribeFileSystems,进入该接口在OpenAPI门户的调试地址。

  2. 在左侧的参数配置页签,填写需要的参数信息,本示例服务地址选择华东1(杭州)

  3. 在右侧的SDK示例页签,选择Python语言,单击下载完整工程按钮,下载示例代码包。

  4. 本地解压并进入alibabacloud_sample目录。

运行代码

执行以下命令:

python sample.py

返回示例如下:

{
    "headers":{
        "date":"Wed, 26 Jul 2023 09:03:41 GMT",
        "content-type":"application/json;charset=utf-8",
        "content-length":"1033",
        "connection":"keep-alive",
        "keep-alive":"timeout=25",
        "vary":"Accept-Encoding",
        "access-control-allow-origin":"*",
        "access-control-expose-headers":"*",
        "x-acs-request-id":"31BF0F2B-9C5F-5FD3-88FA-60621657****",
        "x-acs-trace-id":"5842784c3ae9fe9bdcb255bfaa61****",
        "etag":"14PmeGvuG5exKT8M004b****"
    },
    "body":{
        "PageNumber":1,
        "RequestId":"31BF0F2B-9C5F-5FD3-88FA-60621657****",
        "PageSize":10,
        "TotalCount":1,
        "FileSystems":{
            "FileSystem":[
                {
                    "Status":"Running",
                    "Capacity":10485760,
                    "MeteredIASize":0,
                    "CreateTime":"2023-07-24T11:36:17CST",
                    "ChargeType":"PayAsYouGo",
                    "StorageType":"Capacity",
                    "RegionId":"cn-hangzhou",
                    "FileSystemType":"standard",
                    "FileSystemId":"197df64****",
                    "MeteredSize":10625024,
                    "EncryptType":0,
                    "Description":"test",
                    "ExpiredTime":"",
                    "ZoneId":"cn-hangzhou-g",
                    "ProtocolType":"NFS",
                    "KMSKeyId":"",
                    "MountTargets":{
                        "MountTarget":[
                            {
                                "VpcId":"vpc-2vc1h319fodms9p76****",
                                "Status":"Active",
                                "MountTargetDomain":"197df64****-j****.cn-hangzhou.nas.aliyuncs.com",
                                "AccessGroupName":"DEFAULT_VPC_GROUP_NAME",
                                "VswId":"vsw-2vcapqvrrxjn15n0m****",
                                "NetworkType":"vpc",
                                "ClientMasterNodes":{
                                    "ClientMasterNode":[

                                    ]
                                },
                                "Tags":{
                                    "Tag":[

                                    ]
                                }
                            }
                        ]
                    },
                    "Packages":{
                        "Package":[

                        ]
                    },
                    "SupportedFeatures":{
                        "SupportedFeature":[
                            "Lifecycle",
                            "Quota",
                            "Acl"
                        ]
                    },
                    "Ldap":{

                    }
                }
            ]
        }
    }
}