本文最后更新于:2024年6月25日 早上

大疆机场2 支持媒体文件直传阿里云 OSS 对象存储,本文记录实现过程。

准备工作

  1. 大疆机场 2
  2. 随机场配置无人机 M3D
  3. 机场上电、联网、完成配置
  4. 机场连接司空2配置完成
  5. 已经购买阿里云 OSS 并创建了 Bucket

流程简介

完成准备工作后可以尝试媒体文件直传,其中关键的步骤是在司空2中配置 OSS 对象信息,该信息格式为:

1
2
3
4
5
6
7
8
9
10
{
"access_key_id":"xxxxxxx", // 必传
"access_key_secret":"xxxxxxxx", // 必传
"region":"cn-hangzhou", // 必传
"bucket":"hz-xxx-bucket", // 必传
"arn":"xxxxxx", // 必传
"policy": "xxxxxxx", // 非必传
"role_session_name":"xxxxx", // 必传
"provider":"ali" // 必传,ali 或aws
}

所以关键在于如何从 阿里云 OSS 对象存储服务中准确获取上述信息

阿里云操作流程

官方文档

司空参考文档

阿里云官方文档

创建 RAM用户

  1. 登录RAM控制台
  2. 在左侧导航栏,选择身份管理>用户
  3. 单击创建用户
  4. 输入登录名称显示名称
  5. 访问方式区域下,选择OpenAPI调用访问,然后单击确定
  6. 根据界面提示,完成安全验证。
  7. 复制访问密钥(AccessKey ID 和 AccessKey Secret)。
  • 进入 RAM 控制台

在 OSS 对象存储中进入自己的 Bucket 中,然后进入 RAM 控制台

  • 进入创建用户界面

  • 创建用户

    配置用户名称,勾选 OpenAPI 访问

  • 创建 AccessKey

    进入该用户配置界面,点击创建 AccessKey ,保存好该信息,这是唯一可以显示信息的机会

授予请求AssumeRole的权限

  1. 单击已创建RAM用户右侧对应的添加权限****。
  2. 添加权限页面,选择AliyunSTSAssumeRoleAccess系统策略。
  • 进入权限添加页面

  • 添加 AliyunSTSAssumeRoleAccess 权限

创建用于获取临时访问凭证的角色

  1. 在左侧导航栏,选择身份管理 > 角色
  2. 单击创建角色,选择可信实体类型为阿里云账号,单击下一步
  3. 创建角色对话框,角色名称填写为RamOssTest,选择信任的云账号当前云账号
  4. 单击完成。角色创建完成后,单击关闭
  5. 角色页面,搜索框输入角色名称RamOssTest,然后单击RamOssTest。
  6. 单击ARN右侧的复制,保存角色的ARN。
  • 创建角色

  • 选择可信实体类型为阿里云账号,单击下一步
  • 配置角色名称,选择信任的云账号当前云账号

  • 返回角色页面,点击刚刚创建的角色名,进入角色配置界面

这里有角色 ID 和后面会用到的 ARN

为角色授予上传文件的权限

  1. 进入 Bucket 配置页面

  2. 为角色授予上传文件和下载文件的自定义权限策略。

    1. 在左侧导航栏,选择权限管理>权限策略

    2. 权限策略页面,单击创建权限策略

    3. 创建权限策略页面,单击脚本编辑,然后在策略文档输入框中赋予角色向目标存储空间examplebucket执行简单上传(oss:PutObject)和下载文件(oss:GetObject)的权限。

      阿里云具体配置示例如下。

      S警告:以下示例仅供参考。您需要根据实际需求配置更细粒度的授权策略,防止出现权限过大的风险。关于更细粒度的授权策略配置详情,请参见通过RAM或STS服务向其他用户授权

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      {
      "Version": "1",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "oss:PutObject",
      "oss:GetObject"
      ],
      "Resource": [
      "acs:oss:*:*:examplebucket",
      "acs:oss:*:*:examplebucket/*"
      ]
      }
      ]
      }

      这里 examplebucket 需要换成自己 bucket 的名字

      我的示例界面

    4. 策略配置完成后,单击继续编辑基本信息

    5. 基本信息区域,填写策略名称,然后单击确定

  3. 为RAM角色RamOssTest授予自定义权限策略。

    1. 在左侧导航栏,选择身份管理 > 角色

    2. 角色页面,找到目标RAM角色RamOssTest。

    3. 单击RAM角色RamOssTest右侧的新增授权

    4. 添加权限页面下的自定义策略页签,选择已创建的自定义权限策略RamTestPolicy。

    5. 单击确认新增授权

在云端互联中进行配置

1
2
3
4
5
6
7
8
9
{
"access_key_id": "对应步骤一创建用户时的AccessKeyID",
"access_key_secret": "对应步骤一创建用户时的AccessKeySecret",
"region": "创建bucket选中的区域,如华东1(杭州)对应cn-hangzhou",
"bucket": "work-dji", “bucket 名称”
"arn": "对应步骤3中的ARN",
"role_session_name": "可以随意填写",
"provider": "如果使用阿里云,则填写ali"
}

参考资料



文章链接:
https://www.zywvvd.com/notes/devices/dji/dji-oss/dji-oss/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

大疆机场2 云端互联 阿里云 OSS 媒体文件直传
https://www.zywvvd.com/notes/devices/dji/dji-oss/dji-oss/
作者
Yiwei Zhang
发布于
2024年6月10日
许可协议