Skip to content

批量文件上传

在 Integrated Data Lake 中批量上传对象,增加了批量导入或导出数据的可能性。它可以通过外部服务器或程序来分析或过滤大量数据。批量文件上传使用 AWS 提供的 STS 令牌和写访问权限。这需要指定需要上传大容量文件的文件夹。然后生成对该路径(文件夹)具有写访问权的 STS 令牌。 使用这个 STS 令牌,您可以批量上传文件。STS 令牌的有效期最长为12小时。

提供写权限

tenantAdmin 可以访问该 API,并提供对文件夹或路径、子租户文件夹和根文件夹 (Time Series Import (TSI)文件夹除外)的写权限。

POST /accessTokenPermissions
Content-Type: Content-Type: application/json

请求示例:

{
  "subtenantId": "204a896c-a23a-11e9-a2a3-2a2ae2dbcce4",
  "path": "/myfolder1/myfolder2",
  "permission": "WRITE"
}

响应示例:

{
  "subtenantId": "204a896c-a23a-11e9-a2a3-2a2ae2dbcce4",
  "id": "string",
  "path": "/myfolder1/myfolder2",
  "permission": "WRITE",
  "created": "2019-11-12T13:36:00.000Z"
}

获取写权限文件夹列表

tenantAdmin 可以 获恨拥有写权限的所有文件夹的列表,还可以获得子租户文件夹的写权限列表。

GET /accessTokenPermissions
Content-Type: application/json

响应示例:

{
   "accessTokenPermissions": [
  {
    "subtenantId": "204a896c-a23a-11e9-a2a3-2a2ae2dbcce4",
    "id": "string",
    "path": "/myfolder1/myfolder2",
    "permission": "WRITE",
    "created": "2019-11-12T13:36:00.000Z"
  }
  ]
}

获取指定id写权限文件夹列表

对于指定id,您可以获取具有写权限的文件夹列表。tenantAdmin 还可以获取子承租者请求的详细信息。子租户可以访问此 API 以获取属于其写文件夹的请求的详细信息。

GET /accessTokenPermissions/{id}
Content-Type: application/json

响应示例:

{
  "subtenantId": "204a896c-a23a-11e9-a2a3-2a2ae2dbcce4",
  "id": "string",
  "path": "/myfolder1/myfolder2",
  "permission": "WRITE",
  "created": "2019-11-12T13:36:00.000Z""id": "0234sd34a23a-11e9-a2a3-2a2sdfw34ce4",
}

撤销写权限

TenantAdmin 可以访问该 API 来删除指定 id 的文件夹写权限。

DELETE /accessTokenPermissions/{id}
Content-Type: application/json

响应示例:

Status: 204 - deleted

获取具有写权限的 STS 令牌

请求 URL:

https://gateway.eu1.mindsphere.io/api/datalake/v3/generateAccessToken

请求示例:

{
  "durationSeconds": 900,
  "permission": "WRITE"
}

响应示例:

{
  "storageAccount": "dlbucketname",
  "storagePath": "data/ten=tenantname OR data/sub=subtenantId",
  "credentials": {
    "secretAccessKey": "AbCdEfGhIjKlMnOpQrStUvWxYz",
    "accessKeyId": "AbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYz",
    "sessionToken": "AbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYz"
  },
  "durationSeconds": 900,
  "permission": "WRITE"
}

命令和输出

以下命令用于批量上传:

aws s3 cp s3://ms-coldstorage-iot-integ-eu-central-1/000013bb5ed740f9950504854367e12a s3://estbuckettimeseries/ten=dide2/000013bb5ed740f9950504854367e12a --recursive

Completed 1.7 KiB/1.7 KiB (812 Bytes/s) with 1 file(s) remaining
copy: s3://ms-coldstorage-iot-integ-eu-central-1/000013bb5ed740f9950504854367e12a/propSetName=SPSNFRTestFields/date=2019-04-05/0900.parquet to s3://estbuckettimeseries/ten=dide2/000013bb5ed740f995050485436
7e12a/propSetName=SPSNFRTestFields/date=2019-04-05/0900.parquet

说明

上传文件所需的时间取决于网络带宽和位置。


Last update: June 30, 2020