批量获取文件缩略图

调用本接口,批量获取文件的缩略图信息。

接口功能介绍

在存储空间内上传的图片、wps格式文档(Word、Excel和PowerPoint)、PDF格式文件和txt格式文件,会异步自动生成缩略图。

调用本接口,可批量获取存储文件的缩略图信息。

权限

要调用此API,需要以下权限之一。

应用类型

是否支持

权限

API Explorer调试

企业内部应用 支持 企业存储文件读权限 API Explorer
第三方企业应用 支持 企业存储文件读权限 API Explorer
第三方个人应用 暂不支持 企业存储文件读权限 暂不支持

请求方法

POST /v1.0/storage/spaces/{spaceId}/thumbnails/query?unionId=String HTTP/1.1
Host:api.dingtalk.com
x-acs-dingtalk-access-token:String
Content-Type:application/json

{
  "dentryIds" : [ "String" ]
}

Header参数

名称

类型

是否必填

描述

x-acs-dingtalk-access-token

String

调用该接口的访问凭证。

Path参数

名称

类型

是否必填

描述

spaceId

String

空间ID。

  • 企业内部应用,调用添加空间接口获取id参数值。

  • 第三方企业应用,调用添加空间接口获取id参数值。

Query参数

名称

类型

是否必填

描述

unionId

String

操作人的unionId。

Body参数

名称

类型

是否必填

描述

dentryIds

Array of String

文件ID,最大值30。

返回参数

名称

类型

描述

resultItems

Array

缩略图获取结果列表。

spaceId

String

文件所在空间ID。

dentryId

String

文件ID。

success

Boolean

是否成功获取到缩略图信息,true表示成功。

errorCode

String

错误原因。

thumbnail

Object

缩略图信息。

width

Integer

缩略图宽度,单位px。

height

Integer

缩略图高度,单位px。

url

String

缩略图url。

示例

请求示例

POST /v1.0/storage/spaces/785xxxxx/thumbnails/query?unionId=chyxxxxx HTTP/1.1
Host:api.dingtalk.com
x-acs-dingtalk-access-token:xxxxx
Content-Type:application/json

{
  "dentryIds" : [ "790xxxxx" ]
}
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * 使用 Token 初始化账号Client
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dingtalkstorage_1_0.Client createClient() throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
        config.protocol = "https";
        config.regionId = "central";
        return new com.aliyun.dingtalkstorage_1_0.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.dingtalkstorage_1_0.Client client = Sample.createClient();
        com.aliyun.dingtalkstorage_1_0.models.GetDentryThumbnailsHeaders getDentryThumbnailsHeaders = new com.aliyun.dingtalkstorage_1_0.models.GetDentryThumbnailsHeaders();
        getDentryThumbnailsHeaders.xAcsDingtalkAccessToken = "<your access token>";
        com.aliyun.dingtalkstorage_1_0.models.GetDentryThumbnailsRequest getDentryThumbnailsRequest = new com.aliyun.dingtalkstorage_1_0.models.GetDentryThumbnailsRequest()
                .setUnionId("chyxxxxx")
                .setDentryIds(java.util.Arrays.asList(
                    "790xxxxx"
                ));
        try {
            client.getDentryThumbnailsWithOptions("785xxxxx", getDentryThumbnailsRequest, getDentryThumbnailsHeaders, new com.aliyun.teautil.models.RuntimeOptions());
        } catch (TeaException err) {
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
            }

        } catch (Exception _err) {
            TeaException err = new TeaException(_err.getMessage(), _err);
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
            }

        }        
    }
}
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys

from typing import List

from alibabacloud_dingtalk.storage_1_0.client import Client as dingtalkstorage_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.storage_1_0 import models as dingtalkstorage__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> dingtalkstorage_1_0Client:
        """
        使用 Token 初始化账号Client
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config()
        config.protocol = 'https'
        config.region_id = 'central'
        return dingtalkstorage_1_0Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        get_dentry_thumbnails_headers = dingtalkstorage__1__0_models.GetDentryThumbnailsHeaders()
        get_dentry_thumbnails_headers.x_acs_dingtalk_access_token = '<your access token>'
        get_dentry_thumbnails_request = dingtalkstorage__1__0_models.GetDentryThumbnailsRequest(
            union_id='chyxxxxx',
            dentry_ids=[
                '790xxxxx'
            ]
        )
        try:
            client.get_dentry_thumbnails_with_options('785xxxxx', get_dentry_thumbnails_request, get_dentry_thumbnails_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                pass

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        get_dentry_thumbnails_headers = dingtalkstorage__1__0_models.GetDentryThumbnailsHeaders()
        get_dentry_thumbnails_headers.x_acs_dingtalk_access_token = '<your access token>'
        get_dentry_thumbnails_request = dingtalkstorage__1__0_models.GetDentryThumbnailsRequest(
            union_id='chyxxxxx',
            dentry_ids=[
                '790xxxxx'
            ]
        )
        try:
            await client.get_dentry_thumbnails_with_options_async('785xxxxx', get_dentry_thumbnails_request, get_dentry_thumbnails_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                pass


if __name__ == '__main__':
    Sample.main(sys.argv[1:])
<?php

// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;

use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Dingtalk;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\GetDentryThumbnailsHeaders;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\GetDentryThumbnailsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

class Sample {

    /**
     * 使用 Token 初始化账号Client
     * @return Dingtalk Client
     */
    public static function createClient(){
        $config = new Config([]);
        $config->protocol = "https";
        $config->regionId = "central";
        return new Dingtalk($config);
    }

    /**
     * @param string[] $args
     * @return void
     */
    public static function main($args){
        $client = self::createClient();
        $getDentryThumbnailsHeaders = new GetDentryThumbnailsHeaders([]);
        $getDentryThumbnailsHeaders->xAcsDingtalkAccessToken = "<your access token>";
        $getDentryThumbnailsRequest = new GetDentryThumbnailsRequest([
            "unionId" => "chyxxxxx",
            "dentryIds" => [
                "790xxxxx"
            ]
        ]);
        try {
            $client->getDentryThumbnailsWithOptions("785xxxxx", $getDentryThumbnailsRequest, $getDentryThumbnailsHeaders, new RuntimeOptions([]));
        }
        catch (Exception $err) {
            if (!($err instanceof TeaError)) {
                $err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
            }
            if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
            }
        }
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once $path;
}
Sample::main(array_slice($argv, 1));
// This file is auto-generated, don't edit it. Thanks.
package main

import (
  "os"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  dingtalkstorage_1_0  "github.com/alibabacloud-go/dingtalk/storage_1_0"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  "github.com/alibabacloud-go/tea/tea"
)


/**
 * 使用 Token 初始化账号Client
 * @return Client
 * @throws Exception
 */
func CreateClient () (_result *dingtalkstorage_1_0.Client, _err error) {
  config := &openapi.Config{}
  config.Protocol = tea.String("https")
  config.RegionId = tea.String("central")
  _result = &dingtalkstorage_1_0.Client{}
  _result, _err = dingtalkstorage_1_0.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  getDentryThumbnailsHeaders := &dingtalkstorage_1_0.GetDentryThumbnailsHeaders{}
  getDentryThumbnailsHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
  getDentryThumbnailsRequest := &dingtalkstorage_1_0.GetDentryThumbnailsRequest{
    UnionId: tea.String("chyxxxxx"),
    DentryIds: []*string{tea.String("790xxxxx")},
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    _, _err = client.GetDentryThumbnailsWithOptions(tea.String("785xxxxx"), getDentryThumbnailsRequest, getDentryThumbnailsHeaders, &util.RuntimeOptions{})
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var err = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      err = _t
    } else {
      err.Message = tea.String(tryErr.Error())
    }
    if !tea.BoolValue(util.Empty(err.Code)) && !tea.BoolValue(util.Empty(err.Message)) {
      // err 中含有 code 和 message 属性,可帮助开发定位问题
    }

  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
// This file is auto-generated, don't edit it
import Util, * as $Util from '@alicloud/tea-util';
import dingtalkstorage_1_0, * as $dingtalkstorage_1_0 from '@alicloud/dingtalk/storage_1_0';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import * as $tea from '@alicloud/tea-typescript';


export default class Client {

  /**
   * 使用 Token 初始化账号Client
   * @return Client
   * @throws Exception
   */
  static createClient(): dingtalkstorage_1_0 {
    let config = new $OpenApi.Config({ });
    config.protocol = "https";
    config.regionId = "central";
    return new dingtalkstorage_1_0(config);
  }

  static async main(args: string[]): Promise<void> {
    let client = Client.createClient();
    let getDentryThumbnailsHeaders = new $dingtalkstorage_1_0.GetDentryThumbnailsHeaders({ });
    getDentryThumbnailsHeaders.xAcsDingtalkAccessToken = "<your access token>";
    let getDentryThumbnailsRequest = new $dingtalkstorage_1_0.GetDentryThumbnailsRequest({
      unionId: "chyxxxxx",
      dentryIds: [
        "790xxxxx"
      ],
    });
    try {
      await client.getDentryThumbnailsWithOptions("785xxxxx", getDentryThumbnailsRequest, getDentryThumbnailsHeaders, new $Util.RuntimeOptions({ }));
    } catch (err) {
      if (!Util.empty(err.code) && !Util.empty(err.message)) {
        // err 中含有 code 和 message 属性,可帮助开发定位问题
      }

    }    
  }

}

Client.main(process.argv.slice(2));
// This file is auto-generated, don't edit it. Thanks.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

using Tea;
using Tea.Utils;


namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        /**
         * 使用 Token 初始化账号Client
         * @return Client
         * @throws Exception
         */
        public static AlibabaCloud.SDK.Dingtalkstorage_1_0.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
            config.Protocol = "https";
            config.RegionId = "central";
            return new AlibabaCloud.SDK.Dingtalkstorage_1_0.Client(config);
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.SDK.Dingtalkstorage_1_0.Client client = CreateClient();
            AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryThumbnailsHeaders getDentryThumbnailsHeaders = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryThumbnailsHeaders();
            getDentryThumbnailsHeaders.XAcsDingtalkAccessToken = "<your access token>";
            AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryThumbnailsRequest getDentryThumbnailsRequest = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryThumbnailsRequest
            {
                UnionId = "chyxxxxx",
                DentryIds = new List<string>
                {
                    "790xxxxx"
                },
            };
            try
            {
                client.GetDentryThumbnailsWithOptions("785xxxxx", getDentryThumbnailsRequest, getDentryThumbnailsHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            }
            catch (TeaException err)
            {
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err 中含有 code 和 message 属性,可帮助开发定位问题
                }
            }
            catch (Exception _err)
            {
                TeaException err = new TeaException(new Dictionary<string, object>
                {
                    { "message", _err.Message }
                });
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err 中含有 code 和 message 属性,可帮助开发定位问题
                }
            }
        }


    }
}

返回示例

HTTP/1.1 200 OK
Content-Type:application/json

{
  "resultItems" : [ {
    "spaceId" : "785xxxxx",
    "dentryId" : "790xxxxx",
    "success" : true,
    "errorCode" : "permissionDenied",
    "thumbnail" : {
      "width" : 64,
      "height" : 64,
      "url" : "url"
    }
  } ]
}

错误码

HttpCode

错误码

错误信息

说明

400

paramError

%s

参数错误

400

paramError.spaceId

%s

参数错误-spaceId

400

paramError.dentryIds

%s

参数错误-dentryIds

400

permissionDenied

%s

无权限获取缩略图

400

dentryNotExist

%s

文件不存在

400

dentryFormatNotSupport

%s

该格式不支持获取缩略图

400

fileViral

%s

病毒文件

400

fileMalicious

%s

恶意文件

403

thumbnailNotExist

%s

缩略图不存在

500

systemError

%s

系统错误

500

unknownError

Unknown Error

未知错误