Deskripsi panggilan API
Tentang ruang penyimpanan
- Ruang penyimpanan adalah bagian dari cloud drive organisasi Anda, tetapi ruang yang dibuat melalui API ini tidak terlihat di cloud drive sisi klien.
- Ruang penyimpanan mengonsumsi kapasitas cloud drive organisasi Anda.
Tipe ruang penyimpanan
- Ruang pengguna (USER): File di ruang ini hanya dapat diberikan izin permanen, dan pemberi izin harus memiliki izin pengelolaan untuk memberikan akses.
- Ruang aplikasi (APP): File di ruang ini hanya dapat diberikan izin sementara, dan pemberi izin tidak diwajibkan memiliki izin pengelolaan.
Permintaan
Informasi dasar
| Bidang | Nilai |
|---|---|
| URL HTTP | https://api.dingtalk.io/v1.0/storage/spaces |
| Metode HTTP | POST |
| Jenis aplikasi yang didukung | appType-Aplikasi internal appType-Aplikasi perusahaan pihak ketiga |
| Izin yang diperlukan | permission-Storage.Space.Write-Izin tulis ruang penyimpanan organisasi |
Header permintaan
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| x-acs-dingtalk-access-token | String | Ya | Kredensial akses untuk memanggil API ini. Dapatkan sebagai berikut: - Untuk aplikasi internal, panggil API Memperoleh access token aplikasi internal. - Untuk aplikasi perusahaan pihak ketiga, panggil API Memperoleh access token perusahaan yang diberi otorisasi. |
Parameter kueri
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| unionId | String | Ya | unionId dari operator. Dapatkan dengan memanggil API Kueri detail pengguna. |
Isi permintaan
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| option | Object | Tidak | Parameter opsional. |
| name | String | Tidak | Nama ruang. Secara default tidak ada nama yang diatur. |
| quota | Long | Tidak | Kapasitas maksimum ruang, dalam byte. Jika parameter ini tidak ditentukan, ruang tidak memiliki batas kapasitas tertentu, tetapi tidak boleh melebihi total kapasitas cloud drive organisasi Anda. |
| capabilities | Object | Tidak | Opsi kemampuan ruang. Secara default tidak ada kemampuan tambahan yang diatur. |
| canSearch | Boolean | Tidak | Apakah pencarian didukung. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| canRename | Boolean | Tidak | Apakah penggantian nama ruang didukung. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| canRecordRecentFile | Boolean | Tidak | Apakah ruang dapat dimasukkan ke daftar Baru Digunakan. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| scene | String | Tidak | Skenario ruang. Nilai ini ditentukan oleh developer. - Jika parameter ini tidak ditentukan, nilai defaultnya adalah default. - Jika kombinasi parameter ini dan sceneId sudah ada, API ini mengembalikan ruang yang telah dibuat sebelumnya dan tidak membuat ruang baru. |
| sceneId | String | Tidak | ID skenario ruang. Nilai ini ditentukan oleh developer. - Jika parameter ini tidak ditentukan, nilai defaultnya adalah 0. - Jika kombinasi sceneId dan parameter ini sudah ada, API ini mengembalikan ruang yang telah dibuat sebelumnya dan tidak membuat ruang baru. |
| ownerType | String | Tidak | Tipe pemilik. - USER: Tipe pengguna. Ini adalah nilai default. - APP: Tipe aplikasi. |
Contoh permintaan
HTTPPOST /v1.0/storage/spaces?unionId=cHtUYxxxxx HTTP/1.1
Host:api.dingtalk.io
x-acs-dingtalk-access-token:xxxxx
Content-Type:application/json
{
"option" : {
"name" : "Ruang uji",
"quota" : 1024,
"capabilities" : {
"canSearch" : true,
"canRename" : true,
"canRecordRecentFile" : true
},
"scene" : "scene",
"sceneId" : "123",
"ownerType" : "USER"
}
}
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;
import com.aliyun.tea.*;
import com.aliyun.teautil.*;
import com.aliyun.teautil.models.*;
import com.aliyun.dingtalkstorage_1_0.*;
import com.aliyun.dingtalkstorage_1_0.models.*;
import com.aliyun.teaopenapi.*;
import com.aliyun.teaopenapi.models.*;
public class Sample {
/**
* Initialize the account client with a token
* @return Client
* @throws Exception
*/
public static com.aliyun.dingtalkstorage_1_0.Client createClient() throws Exception {
Config config = new 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();
AddSpaceHeaders addSpaceHeaders = new AddSpaceHeaders();
addSpaceHeaders.xAcsDingtalkAccessToken = "<your access token>";
AddSpaceRequest.AddSpaceRequestOptionCapabilities optionCapabilities = new AddSpaceRequest.AddSpaceRequestOptionCapabilities()
.setCanSearch(true)
.setCanRename(true)
.setCanRecordRecentFile(true);
AddSpaceRequest.AddSpaceRequestOption option = new AddSpaceRequest.AddSpaceRequestOption()
.setName("Ruang uji")
.setQuota(1024L)
.setCapabilities(optionCapabilities)
.setScene("scene")
.setSceneId("123")
.setOwnerType("USER");
AddSpaceRequest addSpaceRequest = new AddSpaceRequest()
.setUnionId("cHtUYxxxxx")
.setOption(option);
try {
client.addSpaceWithOptions(addSpaceRequest, addSpaceHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err berisi atribut code dan message yang membantu Anda menemukan masalah
}
} 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 berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
}
}
# -*- 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:
"""
Initialize the account client with a token
@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()
add_space_headers = dingtalkstorage__1__0_models.AddSpaceHeaders()
add_space_headers.x_acs_dingtalk_access_token = '<your access token>'
option_capabilities = dingtalkstorage__1__0_models.AddSpaceRequestOptionCapabilities(
can_search=True,
can_rename=True,
can_record_recent_file=True
)
option = dingtalkstorage__1__0_models.AddSpaceRequestOption(
name='Ruang uji',
quota=1024,
capabilities=option_capabilities,
scene='scene',
scene_id='123',
owner_type='USER'
)
add_space_request = dingtalkstorage__1__0_models.AddSpaceRequest(
union_id='cHtUYxxxxx',
option=option
)
try:
client.add_space_with_options(add_space_request, add_space_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err berisi atribut code dan message yang membantu Anda menemukan masalah
pass
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
add_space_headers = dingtalkstorage__1__0_models.AddSpaceHeaders()
add_space_headers.x_acs_dingtalk_access_token = '<your access token>'
option_capabilities = dingtalkstorage__1__0_models.AddSpaceRequestOptionCapabilities(
can_search=True,
can_rename=True,
can_record_recent_file=True
)
option = dingtalkstorage__1__0_models.AddSpaceRequestOption(
name='Ruang uji',
quota=1024,
capabilities=option_capabilities,
scene='scene',
scene_id='123',
owner_type='USER'
)
add_space_request = dingtalkstorage__1__0_models.AddSpaceRequest(
union_id='cHtUYxxxxx',
option=option
)
try:
await client.add_space_with_options_async(add_space_request, add_space_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err berisi atribut code dan message yang membantu Anda menemukan masalah
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\AddSpaceHeaders;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\AddSpaceRequest\option\capabilities;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\AddSpaceRequest\option;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\AddSpaceRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* Initialize the account client with a token
* @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();
$addSpaceHeaders = new AddSpaceHeaders([]);
$addSpaceHeaders->xAcsDingtalkAccessToken = "<your access token>";
$optionCapabilities = new capabilities([
"canSearch" => true,
"canRename" => true,
"canRecordRecentFile" => true
]);
$option = new option([
"name" => "Ruang uji",
"quota" => 1024,
"capabilities" => $optionCapabilities,
"scene" => "scene",
"sceneId" => "123",
"ownerType" => "USER"
]);
$addSpaceRequest = new AddSpaceRequest([
"unionId" => "cHtUYxxxxx",
"option" => $option
]);
try {
$client->addSpaceWithOptions($addSpaceRequest, $addSpaceHeaders, 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 berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
}
}
$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/service"
dingtalkstorage_1_0 "github.com/alibabacloud-go/dingtalk/storage_1_0"
openapi "github.com/alibabacloud-go/darabonba-openapi/client"
"github.com/alibabacloud-go/tea/tea"
)
/**
* Initialize the account client with a token
* @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
}
addSpaceHeaders := &dingtalkstorage_1_0.AddSpaceHeaders{}
addSpaceHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
optionCapabilities := &dingtalkstorage_1_0.AddSpaceRequestOptionCapabilities{
CanSearch: tea.Bool(true),
CanRename: tea.Bool(true),
CanRecordRecentFile: tea.Bool(true),
}
option := &dingtalkstorage_1_0.AddSpaceRequestOption{
Name: tea.String("Ruang uji"),
Quota: tea.Int64(1024),
Capabilities: optionCapabilities,
Scene: tea.String("scene"),
SceneId: tea.String("123"),
OwnerType: tea.String("USER"),
}
addSpaceRequest := &dingtalkstorage_1_0.AddSpaceRequest{
UnionId: tea.String("cHtUYxxxxx"),
Option: option,
}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
_, _err = client.AddSpaceWithOptions(addSpaceRequest, addSpaceHeaders, &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 berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
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 {
/**
* Initialize the account client with a token
* @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 addSpaceHeaders = new $dingtalkstorage_1_0.AddSpaceHeaders({ });
addSpaceHeaders.xAcsDingtalkAccessToken = "<your access token>";
let optionCapabilities = new $dingtalkstorage_1_0.AddSpaceRequestOptionCapabilities({
canSearch: true,
canRename: true,
canRecordRecentFile: true,
});
let option = new $dingtalkstorage_1_0.AddSpaceRequestOption({
name: "Ruang uji",
quota: 1024,
capabilities: optionCapabilities,
scene: "scene",
sceneId: "123",
ownerType: "USER",
});
let addSpaceRequest = new $dingtalkstorage_1_0.AddSpaceRequest({
unionId: "cHtUYxxxxx",
option: option,
});
try {
await client.addSpaceWithOptions(addSpaceRequest, addSpaceHeaders, new $Util.RuntimeOptions({ }));
} catch (err) {
if (!Util.empty(err.code) && !Util.empty(err.message)) {
// err berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
}
}
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
{
/**
* Initialize the account client with a token
* @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.AddSpaceHeaders addSpaceHeaders = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceHeaders();
addSpaceHeaders.XAcsDingtalkAccessToken = "<your access token>";
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest.AddSpaceRequestOption.AddSpaceRequestOptionCapabilities optionCapabilities = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest.AddSpaceRequestOption.AddSpaceRequestOptionCapabilities
{
CanSearch = true,
CanRename = true,
CanRecordRecentFile = true,
};
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest.AddSpaceRequestOption option = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest.AddSpaceRequestOption
{
Name = "Ruang uji",
Quota = 1024,
Capabilities = optionCapabilities,
Scene = "scene",
SceneId = "123",
OwnerType = "USER",
};
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest addSpaceRequest = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.AddSpaceRequest
{
UnionId = "cHtUYxxxxx",
Option = option,
};
try
{
client.AddSpaceWithOptions(addSpaceRequest, addSpaceHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
}
catch (TeaException err)
{
if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
{
// err berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
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 berisi atribut code dan message yang membantu Anda menemukan masalah
}
}
}
}
}
Respons
Isi respons
| Nama | Tipe | Deskripsi |
|---|---|---|
| space | Object | Informasi ruang. |
| id | String | ID ruang. |
| corpId | String | ID organisasi tempat ruang berada. |
| creatorId | String | unionId dari pembuat. |
| ownerType | String | Tipe pemilik. - USER: Tipe pengguna. Ini adalah nilai default. - APP: Tipe aplikasi. |
| ownerId | String | Pengidentifikasi pemilik. |
| modifierId | String | unionId dari pengubah terakhir. |
| usedQuota | Long | Kapasitas yang telah digunakan, dalam byte. |
| quota | Long | Total kapasitas, dalam byte. |
| status | String | Status ruang. - NORMAL: Normal. - DELETE: Sampah. |
| createTime | String | Waktu pembuatan dalam format ISO 8601. Misalnya, 2022-07-29T14:55Z. |
| modifiedTime | String | Waktu modifikasi dalam format ISO 8601. Misalnya, 2022-07-29T14:55Z. |
| appId | String | appId pada Open Platform. |
| scene | String | Skenario bisnis. |
| sceneId | String | ID skenario ruang. |
| capabilities | Object | Opsi kemampuan ruang. |
| canSearch | Boolean | Apakah pencarian didukung. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| canRename | Boolean | Apakah penggantian nama ruang didukung. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| canRecordRecentFile | Boolean | Apakah ruang dapat dimasukkan ke daftar Baru Digunakan. - true: Didukung. - false: Tidak didukung. Ini adalah nilai default. |
| name | String | Nama ruang. |
| partitions | Array | Informasi kapasitas partisi. Nilai maksimumnya adalah 2. |
| partitionType | String | Tipe partisi. - PUBLIC_OSS_PARTITION: Partisi penyimpanan OSS cloud publik. - MINI_OSS_PARTITION: Partisi penyimpanan Mini OSS khusus. |
| quota | Object | Informasi kapasitas. |
| used | Long | Kapasitas aktual yang telah digunakan, dalam byte. Nilai minimumnya adalah 0. Ini mewakili total kapasitas yang ditempati oleh semua file di bawah aplikasi. Operasi pengunggahan, penyalinan, dan penghapusan file memperbarui nilai used sesuai. |
| max | Long | Kapasitas maksimum, dalam byte. - Ketika kapasitas aplikasi saat ini diatur ke max, aplikasi memiliki batas kapasitas atas, dan nilai used tidak boleh melebihi nilai max. - Ketika kapasitas aplikasi saat ini tidak diatur ke max, bidang ini mengembalikan kosong, dan aplikasi berbagi sisa kapasitas yang tersedia dari organisasi. |
| reserved | Long | Sisa kapasitas yang telah dialokasikan sebelumnya, dalam byte. Admin console dapat mengalokasikan kapasitas sebelumnya ke aplikasi atau ruang. Bidang ini menunjukkan sisa kapasitas yang telah dialokasikan sebelumnya, yaitu bagian yang belum digunakan dari kapasitas yang telah dialokasikan sebelumnya. Jika tidak ada kapasitas yang dialokasikan sebelumnya, bidang ini kosong. |
| type | String | Tipe kapasitas. - SHARE: Kapasitas bersama. Dalam mode ini, Quota.max kosong, yang menunjukkan bahwa aplikasi berbagi kapasitas organisasi. - PRIVATE: Kapasitas yang dialokasikan sebelumnya (kapasitas khusus). Dalam mode ini, setelah Quota.max diatur, kapasitas menjadi eksklusif. Gunakan kapasitas yang dialokasikan sebelumnya (khusus) ketika Anda perlu memastikan bahwa kapasitas yang tersedia dari satu aplikasi tidak terpengaruh oleh aplikasi lain. |
Contoh isi respons
HTTP/1.1 200 OK
Content-Type:application/json
{
"space" : {
"id" : "833xxxxx",
"corpId" : "ding027xxxxx",
"creatorId" : "cHtUYxxxxx",
"ownerType" : "USER",
"ownerId" : "xxxxx",
"modifierId" : "cHtUYxxxxx",
"usedQuota" : 1024,
"quota" : 1048576,
"status" : "NORMAL",
"createTime" : "2022-01-01T10:00:00Z",
"modifiedTime" : "2022-01-01T10:00:00Z",
"scene" : "scene",
"sceneId" : "123",
"capabilities" : {
"canSearch" : true,
"canRename" : true,
"canRecordRecentFile" : true
},
"name" : "Ruang uji"
}
}
Kode error
Jika terjadi error saat Anda memanggil API ini, cari solusinya di dokumentasi Kode error global berdasarkan pesan error.| HttpCode | Kode error | Pesan error | Deskripsi |
|---|---|---|---|
| 400 | paramError | %s | Error parameter. |
| 400 | paramError.name | %s | Error parameter - name. |
| 400 | paramError.scene | %s | Error parameter - scene. |
| 400 | paramError.sceneId | %s | Error parameter - sceneId. |
| 403 | permissionDenied | %s | Pengguna tidak memiliki izin untuk membuat ruang. |
| 500 | systemError | %s | Error sistem. |
| 500 | unknownError | Unknown Error | Error tidak dikenal. |
| 503 | operationTimeout | %s | Permintaan kehabisan waktu. |