Python SDK 参考

安装

pip install frameio

用法

使用以下内容实例化和使用客户端:

from frameio import (
Frameio,
SelectDefinitionParamsFieldConfiguration,
SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=CreateFieldDefinitionParamsData_Select(
field_configuration=SelectDefinitionParamsFieldConfiguration(
enable_add_new=False,
options=[
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 1",
),
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 2",
),
],
),
name="Fields definition name",
),
)

异步客户端

SDK 还可以导出异步客户端,以便您可以对我们的 API 发起非阻塞调用。 注意,如果您正在构造要传递给此客户端的异步 httpx 客户端类,请使用 httpx.AsyncClient() 而不是 httpx.Client()(例如,用于此客户端的 httpx_client 参数)。

import asyncio
from frameio import (
AsyncFrameio,
SelectDefinitionParamsFieldConfiguration,
SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
client = AsyncFrameio(
token="YOUR_TOKEN",
)
async def main() -> None:
await client.metadata_fields.metadata_field_definitions_create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=CreateFieldDefinitionParamsData_Select(
field_configuration=SelectDefinitionParamsFieldConfiguration(
enable_add_new=False,
options=[
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 1",
),
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 2",
),
],
),
name="Fields definition name",
),
)
asyncio.run(main())

异常情况处理

当 API 返回非成功状态代码(4xx 或 5xx 响应)时,将抛出以下错误的子类。

from frameio.core.api_error import ApiError
try:
client.metadata_fields.metadata_field_definitions_create(...)
except ApiError as e:
print(e.status_code)
print(e.body)

分页

分页请求将返回 SyncPager 或 AsyncPager,它们可以用作底层对象的生成器。

from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.project_permissions.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

高级

访问原始响应数据

SDK 通过 .with_raw_response 属性提供对原始响应数据(包括标头)的访问权限。 .with_raw_response 属性返回一个“原始”客户端,可用于访问 .headers 和 .data 属性。

from frameio import Frameio
client = Frameio(
...,
)
response = (
client.metadata_fields.with_raw_response.metadata_field_definitions_create(
...
)
)
print(response.headers) # access the response headers
print(response.data) # access the underlying object
pager = client.project_permissions.index(...)
print(pager.response.headers) # access the response headers for the first page
for item in pager:
print(item) # access the underlying object(s)
for page in pager.iter_pages():
print(page.response.headers) # access the response headers for each page
for item in page:
print(item) # access the underlying object(s)

重试

SDK 内置了具有指数退避机制的自动重试功能。 只要请求被视为可重试且重试次数未超过配置的重试限制(默认值:2),就会重试请求。

在返回以下任意 HTTP 状态代码时,该请求均被视为可重试:

  • 408(超时)
  • 429(请求过多)
  • 5XX(内部服务器错误)


使用 max_retries 请求选项来配置此行为。

client.metadata_fields.metadata_field_definitions_create(..., request_options={
"max_retries": 1
})

超时

SDK 的默认超时时间为 60 秒。 您可以在客户端或请求级别使用超时选项来配置此参数。

from frameio import Frameio
client = Frameio(
...,
timeout=20.0,
)
# Override timeout for a specific method
client.metadata_fields.metadata_field_definitions_create(..., request_options={
"timeout_in_seconds": 1
})

自定义客户端

您可以重写 httpx 客户端,针对您的用例进行自定义。 一些常见用例包括支持代理和传输。

import httpx
from frameio import Frameio
client = Frameio(
...,
httpx_client=httpx.Client(
proxy="http://my.test.proxy.example.com",
transport=httpx.HTTPTransport(local_address="0.0.0.0"),
),
)

参考

帐户权限

列出给定帐户的用户角色。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.account_permissions.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include_deactivated=True,
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid —

include_deactivated: typing.Optional[bool] — 支持在响应中包含停用用户。默认值为 false。

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

帐户

列出当前用户的帐户。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.accounts.index(
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

after:typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

通过查询参数提供筛选功能,列出审核日志。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.accounts.auditlog_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="user",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
api_version="4.0",
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

api_version: typing.Literal["4.0"]

include: typing.Optional[typing.Literal["user"]]

filters: typing.Optional[Filters]

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

Auth

使用 OAuth 2.0 client_credentials 授权凭证进行身份验证。 此流程不涉及用户,也不会返回刷新令牌。 当访问令牌过期时,SDK 会使用客户端凭据自动请求新令牌。 对于异步用法,请使用 AsyncServerToServerAuth

usage
from frameio import Frameio
from frameio.auth import ServerToServerAuth
auth = ServerToServerAuth(client_id="YOUR_CLIENT_ID", client_secret="YOUR_CLIENT_SECRET")
client = Frameio(token=auth.get_token)

参数

client_idstr — Adobe IMS OAuth 客户端 ID。

client_secretstr — Adobe IMS OAuth 客户端密钥。

scopesstr — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。 默认为 openid AdobeID frame.s2s.all

ims_base_urlstr — 用于暂存/备用环境的 IMS 基本 URL。 默认为生产环境。

http_clienttyping.Optional[httpx.Client] — 可选的 httpx。适用于代理、TLS 或连接池的客户端。

on_token_refreshedtyping.Optional[typing.Callable[[dict[str, Any]], None]] — 每次令牌获取后触发的可选回调。

timeoutfloat — HTTP 请求超时时间(以秒为单位)。 默认为 30。

max_retriesint — 瞬态故障的最大重试次数。 默认为 2。

refresh_bufferint — 过期时间前触发主动刷新的秒数。 默认为 60。 方法 get_token() -&gt; str — 返回有效的访问令牌,必要时进行刷新。 将此方法引用(非调用)传递给 SDK:Frameio(token=auth.get_token)authenticate() -&gt; dict[str, Any] — 显式获取新的访问令牌。 返回包含 access_tokenexpires_in 等的令牌响应字典。revoke() -&gt; None — 撤销服务器端的两个令牌并清除本地状态。 export_tokens() -&gt; dict[str, Any] — 导出当前令牌状态,实现持久性。 import_tokens(data: dict[str, Any]) -&gt; None — 从之前导出的字典还原令牌状态。

使用 OAuth 2.0 authorization_code 授权凭证进行身份验证。 将其用于可安全存储客户端密钥的服务器端应用程序。 对于异步用法,请使用 AsyncWebAppAuth

usage
import secrets
from frameio import Frameio
from frameio.auth import WebAppAuth
auth = WebAppAuth(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
redirect_uri="https://myapp.com/callback",
)
url = auth.get_authorization_url(state=secrets.token_urlsafe(32))
# redirect user to url ...
auth.exchange_code(code="CODE_FROM_CALLBACK")
client = Frameio(token=auth.get_token)

参数

client_idstr — Adobe IMS OAuth 客户端 ID。

client_secretstr — Adobe IMS OAuth 客户端密钥。

redirect_uristr — 已注册的重定向 URI。

scopesstr — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。

ims_base_urlstr — 用于暂存/备用环境的 IMS 基本 URL。 默认为生产环境。

http_clienttyping.Optional[httpx.Client] — 可选的 httpx。适用于代理、TLS 或连接池的客户端。

on_token_refreshedtyping.Optional[typing.Callable[[dict[str, Any]], None]] — 每次令牌刷新后触发的可选回调。

timeoutfloat — HTTP 请求超时时间(以秒为单位)。 默认为 30。

max_retriesint — 瞬态故障的最大重试次数。 默认为 2。

refresh_bufferint — 过期时间前触发主动刷新的秒数。 默认为 60。 方法 get_token() -&gt; str — 返回有效的访问令牌,必要时进行刷新。 将此方法引用传递给 SDK:Frameio(token=auth.get_token)get_authorization_url(state: str) -&gt; str — 构建 Adobe IMS 授权 URL。 传递一个不透明的 CSRF/状态值,该值将被回显。 exchange_code(code: str) -&gt; dict[str, Any] — 使用授权代码交换访问令牌和刷新令牌。 refresh() -&gt; dict[str, Any] — 手动触发令牌刷新。 revoke() -&gt; None — 撤销服务器端的两个令牌并清除本地状态。 export_tokens() -&gt; dict[str, Any] — 导出当前令牌状态,实现持久性。 import_tokens(data: dict[str, Any]) -&gt; None — 从之前导出的字典还原令牌状态。

使用 authorization_code + PKCE(无客户端密钥)进行身份验证。 将其用于无法安全存储客户端密钥的基于浏览器或原生的应用程序。 对于异步用法,请使用 AsyncSPAAuth

usage
import secrets
from frameio import Frameio
from frameio.auth import SPAAuth
auth = SPAAuth(client_id="YOUR_CLIENT_ID", redirect_uri="https://myapp.com/cb")
result = auth.get_authorization_url(state=secrets.token_urlsafe(32))
# redirect user to result.url, store result.code_verifier
auth.exchange_code(code="CODE_FROM_CALLBACK", code_verifier=result.code_verifier)
client = Frameio(token=auth.get_token)

参数

client_idstr — Adobe IMS OAuth 客户端 ID。

redirect_uristr — 已注册的重定向 URI。

scopesstr — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。

ims_base_urlstr — 用于暂存/备用环境的 IMS 基本 URL。 默认为生产环境。

http_clienttyping.Optional[httpx.Client] — 可选的 httpx。适用于代理、TLS 或连接池的客户端。

on_token_refreshedtyping.Optional[typing.Callable[[dict[str, Any]], None]] — 每次令牌刷新后触发的可选回调。

timeoutfloat — HTTP 请求超时时间(以秒为单位)。 默认为 30。

max_retriesint — 瞬态故障的最大重试次数。 默认为 2。

refresh_bufferint — 过期时间前触发主动刷新的秒数。 默认为 60。 方法 get_token() -&gt; str — 返回有效的访问令牌,必要时进行刷新。 将此方法引用传递给 SDK:Frameio(token=auth.get_token)get_authorization_url(state: str) -&gt; AuthorizationUrlResult — 使用 PKCE 质询构建 Adobe IMS 授权 URL。 返回带有 urlcode_verifier 属性的 AuthorizationUrlResultexchange_code(code: str, code_verifier: str) -&gt; dict[str, Any] — 将授权代码 + PKCE 验证器交换为令牌。 refresh() -&gt; dict[str, Any] — 手动触发令牌刷新。 revoke() -&gt; None — 撤销服务器端的两个令牌并清除本地状态。 export_tokens() -&gt; dict[str, Any] — 导出当前令牌状态,实现持久性。 import_tokens(data: dict[str, Any]) -&gt; None — 从之前导出的字典还原令牌状态。

SPAAuth.get_authorization_url()AsyncSPAAuth.get_authorization_url() 返回的冻结数据类。 包含授权 URL 和 PKCE 代码验证器。 Attributes urlstr — 要将用户重定向到的完整授权 URL。 code_verifierstr — 要存储并传递给 exchange_code() 的 PKCE 代码验证器。

关闭身份验证模块使用的模块级 HTTP 客户端。 在应用程序关闭期间,在同步代码中调用 close_clients(),或在异步代码中调用 await aclose_clients() 以释放连接。

usage
from frameio.auth import close_clients
# During application shutdown
close_clients()

身份验证异常情况

所有身份验证异常情况均继承自 FrameioAuthError

例外描述
FrameioAuthErrorframeio.auth 错误的基本异常情况。
AuthenticationError令牌交换或刷新失败。 具有 error_codeerror_description 属性。
TokenExpiredError刷新令牌已过期;需要进行重新验证。
ConfigurationError缺少必需配置或配置无效。
NetworkError网络请求失败(超时、连接错误等)。
RateLimitErrorAPI 返回 429,重试次数已用尽。 具有 retry_after 属性。
PKCEErrorPKCE 验证失败。

收藏集

列出项目的收藏集。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.collections.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator,project",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

project_id: Uuid

include: typing.Optional[CollectionInclude]

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示收藏集详细信息

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.collections.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
collection_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator,project",
)

参数

account_id: Uuid

collection_id: Uuid

include: typing.Optional[CollectionInclude]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

评论

显示文件上的单条评论。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="owner",
)

参数

account_id: Uuid —

comment_id: Uuid —

include: typing.Optional[CommentsShowRequestInclude] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从资产中删除评论。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

comment_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新给定资产上的评论。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.comments import UpdateCommentParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
timestamp_as_timecode=True,
data=UpdateCommentParamsData(
annotation='[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
completed=False,
page=4,
text="This is great!",
),
)

参数

account_id: Uuid —

comment_id: Uuid —

data: UpdateCommentParamsData

timestamp_as_timecode: typing.Optional[bool] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出给定资产上的评论。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.comments.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="owner",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid —

file_id: Uuid —

include: typing.Optional[CommentInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

对文件发表评论。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
from frameio.comments import CreateCommentParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
timestamp_as_timecode=True,
data=CreateCommentParamsData(
annotation='[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
completed=False,
page=4,
text="This is great!",
timestamp="00:00:02:12",
),
)

参数

account_id: Uuid —

file_id: Uuid —

data: CreateCommentParamsData

timestamp_as_timecode: typing.Optional[bool] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

为现有评论创建附件

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import AttachmentInput, Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.create_attachment(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=AttachmentInput(
file_size=1024000,
media_type="image/png",
name="screenshot.png",
),
)

参数

account_id: Uuid

comment_id: Uuid

data: AttachmentInput

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

删除评论中的附件.

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.comments.delete_attachment(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
attachment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

comment_id: Uuid

attachment_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

自定义操作

列出给定工作区中的操作。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.custom_actions.actions_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

workspace_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示自定义操作详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.custom_actions.actions_show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
)

参数

account_id: Uuid

action_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

在工作区中创建自定义操作。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.custom_actions import ActionCreateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.custom_actions.actions_create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=ActionCreateParamsData(
description="customizing our workflow",
event="my.event",
name="First Custom Action",
timeout=7,
url="https://example.com/custom-action",
),
)

参数

account_id: Uuid

workspace_id: Uuid

data: ActionCreateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新自定义操作详细信息。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.custom_actions import ActionUpdateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.custom_actions.actions_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=ActionUpdateParamsData(
active=True,
description="customizing our workflow",
event="my.event",
multi_asset=True,
name="First Custom Action",
timeout=7,
url="https://example.com/custom-action",
),
)

参数

account_id: Uuid

action_id: Uuid

data: ActionUpdateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

删除自定义操作。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.custom_actions.actions_delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

action_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

文件

列出给定文件夹中的文件。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.files.list(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

folder_id: Uuid

include: typing.Optional[FileWithMediaLinksInclude]

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

在主文件夹下创建新文件。创建文件(本地上传)创建文件(远程上传)已替换此端点。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
from frameio.files import FileCreateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileCreateParamsData(
file_size=1137444,
media_type="image/png",
name="asset.png",
),
)

参数

account_id: Uuid

folder_id: Uuid

data: FileCreateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示文件详细信息。

使用 include 查询参数选择性地在响应中包含其他属性。

如果您包含 media_links.original 且用户无权下载文件,则此端点将响应 403 Forbidden 错误。如果由于该用户需要水印而请求的 media_links 不支持水印,导致内容无法访问,则请求将成功,但不支持的媒体链接将被设置为 null。 同样,如果请求的转码链接对于特定文件不存在(例如,在静态图像文件中包含 media_links.video_h264_180)或者转码过程尚未完成(即文件的状态为“已上传”而不是“已转码”),则响应负载中的链接也将被设置为 null。 简而言之,客户端必须妥善处理 null 媒体链接。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.files.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
)

参数

account_id: Uuid

file_id: Uuid

include: typing.Optional[FileWithMediaLinksInclude]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

按 ID 删除文件。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.files.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

file_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新文件详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
from frameio.files import FileUpdateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileUpdateParamsData(
name="asset.png",
),
)

参数

account_id: Uuid

file_id: Uuid

data: FileUpdateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

复制文件。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
from frameio.files import FileCopyParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.copy(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
copy_metadata=True,
copy_comments="none",
data=FileCopyParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid

file_id: Uuid

copy_metadata: typing.Optional[bool] — 是否随文件一起复制元数据值

copy_comments: typing.Optional[FilesCopyRequestCopyComments] — 要随文件一起复制的评论

data: typing.Optional[FileCopyParamsData]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

通过远程上传在父文件夹下创建新文件。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
from frameio.files import FileCreateRemoteUploadParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.create_remote_upload(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileCreateRemoteUploadParamsData(
name="asset.png",
source_url="https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png",
),
)

参数

account_id: Uuid

folder_id: Uuid

data: FileCreateRemoteUploadParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

将文件移至文件夹或 version_stack。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
from frameio.files import FileMoveParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.move(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileMoveParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid

file_id: Uuid

data: FileMoveParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

通过本地上传在父文件夹下创建新文件。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
from frameio.files import FileCreateLocalUploadParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.create_local_upload(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileCreateLocalUploadParamsData(
file_size=1137444,
name="asset.png",
),
)

参数

account_id: Uuid

folder_id: Uuid

data: FileCreateLocalUploadParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示文件上传状态详细信息。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.files.show_file_upload_status(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

file_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从帐户上配置的存储位置导入文件

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
from frameio.files import FileImportParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.files.import_file(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileImportParamsData(
key="uploads/08091b0f-a541-42f5-a059-5e8c4afecc12/original.png",
name="asset.png",
storage_location="123e4567-e89b-12d3-a456-426614174000",
),
)

参数

account_id: Uuid

folder_id: Uuid

data: FileImportParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

文件夹权限

列出给定文件夹的用户角色

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folder_permissions.folder_user_roles_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include_deactivated=True,
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

folder_id: Uuid

include_deactivated: typing.Optional[bool] — 支持在响应中包含已停用的用户。默认值为 false。

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

如果用户已添加到文件夹,则更新给定文件夹的用户角色。如果用户未添加到文件夹,则会添加该用户并分配给定角色。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio, UpdateUserRolesParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.folder_permissions.folder_user_roles_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateUserRolesParamsData(
role="editor",
),
)

参数

account_id: Uuid

folder_id: Uuid

user_id: Uuid

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从指定文件夹中移除用户。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folder_permissions.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

folder_id: Uuid

user_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

文件夹

显示文件夹详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
)

参数

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[AssetInclude] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

按 ID 删除文件夹。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

folder_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。.

更新文件夹详细信息。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.folders import FolderUpdateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FolderUpdateParamsData(
name="Folder name",
),
)

参数

account_id: Uuid —

folder_id: Uuid —

data: FolderUpdateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。.

列出给定文件夹中的次项。

使用 include 查询参数选择性地在响应中包含其他属性。

如果您包含 media_links.original 且用户无权下载相应项目中的文件,则此端点将响应 403 Forbidden 错误。如果由于该用户需要水印而请求的 media_links 不支持水印,导致内容无法访问,则请求将成功,但不支持的媒体链接将被设置为 null。 同样,如果请求的转码链接对于特定文件不存在(例如,在静态图像文件中包含 media_links.video_h264_180)或者转码过程尚未完成(即文件的状态为“已上传”而不是“已转码”),则响应负载中的媒体链接也将被设置为 null。 简而言之,客户端必须妥善处理 null 媒体链接。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
type="file,folder,version_stack",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

type: typing.Optional[ChildrenType] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

复制文件夹。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.folders import FolderCopyParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.copy(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
copy_metadata=True,
data=FolderCopyParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid —

folder_id: Uuid —

copy_metadata: typing.Optional[bool] — 是否随文件夹一起复制元数据值

data: typing.Optional[FolderCopyParamsData]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出给定文件夹中的文件夹。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.list(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[AssetInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

在给定的 folder_id 路径参数内创建新文件夹。

速率限制:每个 account_user 每 1 秒钟 3 次调用

usage
from frameio import Frameio
from frameio.folders import FolderCreateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FolderCreateParamsData(
name="Folder name",
),
)

参数

account_id: Uuid —

folder_id: Uuid —

data: FolderCreateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。.

将文件夹移动到另一个文件夹。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.folders import FolderMoveParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.folders.move(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FolderMoveParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid —

folder_id: Uuid —

data: FolderMoveParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。.

列出帐户中的组

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.groups.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
sort="creator_asc",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

sort: typing.Optional[GroupsIndexRequestSort] — 按查询参数对组进行排序

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示组详细信息

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.groups.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="creator",
)

参数

account_id: Uuid

group_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

为当前帐户创建组

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.groups import CreateGroupParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.groups.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=CreateGroupParamsData(
emoji="smile",
name="group-1",
),
)

参数

account_id: Uuid

data: CreateGroupParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新组详细信息

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.groups import UpdateGroupParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.groups.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateGroupParamsData(
emoji="smile",
name="group-1",
),
)

参数

account_id: Uuid

group_id: Uuid

data: UpdateGroupParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

元数据

更新多个文件中的元数据值。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.metadata import (
BulkUpdateMetadataParamsData,
BulkUpdateMetadataParamsDataValuesItem,
)
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata.bulk_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=BulkUpdateMetadataParamsData(
file_ids=[
"09b31c2a-04de-464a-a593-643a36ef0d98",
"b967fc36-4e18-4b48-a3ab-c790100e2baa",
],
values=[
BulkUpdateMetadataParamsDataValuesItem(
field_definition_id="ff41ce50-269b-4624-8306-aac10e28ab94",
value=[
{
"id": "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
"type": "user",
},
{
"id": "24eeaf7e-ce27-4555-bc77-cce39900626d",
"type": "account_user_group",
},
],
)
],
),
)

参数

account_id: Uuid

project_id: Uuid

data: BulkUpdateMetadataParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示文件的元数据。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
show_null=True,
)

参数

account_id: Uuid

file_id: Uuid

show_null: typing.Optional[bool]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

元数据字段

删除帐户级自定义字段定义。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

field_definition_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新帐户级自定义字段定义。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import (
Frameio,
UpdateSelectDefinitionParamsFieldConfiguration,
UpdateSelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import UpdateFieldDefinitionParamsData_Select
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateFieldDefinitionParamsData_Select(
field_configuration=UpdateSelectDefinitionParamsFieldConfiguration(
enable_add_new=False,
options=[
UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 1",
),
UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 2",
),
],
),
name="Updated-Field-Name",
),
)

参数

account_id: Uuid —

field_definition_id: Uuid —

data: typing.Optional[UpdateFieldDefinitionParamsData]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出帐户级字段定义。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

创建帐户级字段定义。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import (
Frameio,
SelectDefinitionParamsFieldConfiguration,
SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
client = Frameio(
token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=CreateFieldDefinitionParamsData_Select(
field_configuration=SelectDefinitionParamsFieldConfiguration(
enable_add_new=False,
options=[
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 1",
),
SelectDefinitionParamsFieldConfigurationOptionsItem(
display_name="Option 2",
),
],
),
name="Fields definition name",
),
)

参数

account_id: Uuid —

data: typing.Optional[CreateFieldDefinitionParamsData]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

项目权限

列出给定项目的用户角色。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.project_permissions.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include_deactivated=True,
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid —

project_id: Uuid —

include_deactivated: typing.Optional[bool] — 支持在响应中包含停用的用户。 默认值为 false。

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

注意:此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从给定项目中移除用户。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.project_permissions.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

project_id: Uuid —

user_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

如果用户已添加到给定项目,则更新该项目的用户角色。 如果用户未添加到项目,则会添加该用户并分配给定角色。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio, UpdateUserRolesParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.project_permissions.project_user_roles_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateUserRolesParamsData(
role="editor",
),
)

参数

account_id: Uuid —

project_id: Uuid —

user_id: Uuid —

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

项目

显示项目详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.projects.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

project_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

删除项目。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.projects.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

project_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新项目详细信息。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.projects import ProjectUpdateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.projects.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=ProjectUpdateParamsData(
name="Project Name",
restricted=True,
status="active",
),
)

参数

account_id: Uuid

project_id: Uuid

data: ProjectUpdateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出给定工作区中的项目。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.projects.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

workspace_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

在给定工作区中创建项目。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.projects import ProjectParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.projects.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=ProjectParamsData(
name="Project Name",
restricted=True,
),
)

参数

account_id: Uuid

workspace_id: Uuid

data: ProjectParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出已验证用户在指定帐户内具有访问权限的所有项目.

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.projects.account_projects_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="owner",
sort="name_asc",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

sort: typing.Optional[AccountProjectsIndexRequestSort] — 按查询参数对项目进行排序

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出当前用户在指定帐户内受邀参与但没有工作区级别访问权限的项目。这些是用户拥有项目专属的协作者访问权限,但不具备更广泛的团队/工作区权限的项目。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.projects.invited_projects_index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="owner",
sort="name_asc",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

sort: typing.Optional[InvitedProjectsIndexRequestSort] — 按查询参数对项目进行排序

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

搜索

搜索帐户内的资产、文件夹和项目

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
from frameio.search import SearchParamsFilters
client = Frameio(
token="YOUR_TOKEN",
)
client.search.search(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
engine="nlp",
query="red car driving on highway",
filters=SearchParamsFilters(
files_and_version_stacks=True,
folders=False,
projects=False,
),
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid

engine: SearchParamsEngine — 要使用的搜索引擎。可用引擎:lexical、nlp。

query: str — 搜索查询文本

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

filters: typing.Optional[SearchParamsFilters] — 用于控制返回哪些类型结果的筛选条件

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

共享

显示单个共享项。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

share_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

删除共享项。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

share_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新共享项。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
import datetime
from frameio import Frameio
from frameio.shares import UpdateShareParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateShareParamsData(
access="public",
description="A descriptive summary of the share",
downloading_enabled=True,
expiration=datetime.datetime.fromisoformat(
"2026-01-22 17:04:53+00:00",
),
name="Share Name",
passphrase="as!dfj39sd(*",
),
)

参数

account_id: Uuid

share_id: Uuid

data: UpdateShareParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出共享审阅者。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.shares.list_reviewers(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

share_id: Uuid

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

通过三种标识符类型为安全共享添加审阅者:adobe_user_idemailuser_id

一个请求只能包含一种标识符类型的参数。

对于在共享项所属帐户下没有 Frame 帐户成员身份的用户,email 是将其添加为审阅者的唯一标识符。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.shares import (
AddReviewersToShareParamsData,
AddReviewersToShareParamsDataReviewers,
)
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.add_reviewers(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=AddReviewersToShareParamsData(
message="Please join my share!",
reviewers=AddReviewersToShareParamsDataReviewers(
emails=["email1@domain.com", "email2@domain.com"],
),
),
)

参数

account_id: Uuid

share_id: Uuid

data: AddReviewersToShareParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

通过三种标识符类型从安全共享中移除审阅者:adobe_user_idemailuser_id

一个请求只能包含一种标识符类型的参数。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.shares import (
RemoveReviewerParamsData,
RemoveReviewerParamsDataReviewers,
)
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.remove_reviewers(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=RemoveReviewerParamsData(
reviewers=RemoveReviewerParamsDataReviewers(
adobe_user_ids=[
"2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"
],
),
),
)

参数

account_id: Uuid

share_id: Uuid

data: RemoveReviewerParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从该共享项中移除当前在共享项中的资产。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.remove_asset(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
asset_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

share_id: Uuid

asset_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

添加新的资产共享。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.shares import AddAssetParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.add_asset(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=AddAssetParamsData(
asset_id="0cc1cb59-1d7c-4176-8532-afe099897318",
),
)

参数

account_id: Uuid

share_id: Uuid

data: AddAssetParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出项目上的共享项。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.shares.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

project_id: Uuid

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

创建共享项。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
import datetime
from frameio import Frameio
from frameio.shares import CreateShareParamsData_Asset
client = Frameio(
token="YOUR_TOKEN",
)
client.shares.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=CreateShareParamsData_Asset(
access="public",
asset_ids=[
"12eb1446-5736-4f93-85fc-3b636f156211",
"f23a3b3e-7b1f-4655-b91a-acf0566e5bb9",
],
downloading_enabled=True,
expiration=datetime.datetime.fromisoformat(
"2026-01-22 17:04:53+00:00",
),
name="Share Name",
passphrase="as!dfj39sd(*",
),
)

参数

account_id: Uuid

project_id: Uuid

data: CreateShareParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

上传

使用 client.files.create_local_upload(...) 返回的预签名 URL,将本地文件上传到 Frame.io。FrameioUploader 是一个轻量封装,它从 FileWithUploadUrls 响应中读取 upload_urlsfile_sizemedia_type,并执行分片、多线程的 S3 上传。

usage
from frameio import Frameio
from frameio.files import FileCreateLocalUploadParamsData
from frameio.upload import FrameioUploader
client = Frameio(
token="YOUR_TOKEN",
)
response = client.files.create_local_upload(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=FileCreateLocalUploadParamsData(
file_size=1137444,
name="asset.png",
),
)
with open("asset.png", "rb") as f:
FrameioUploader(response.data, f).upload()

参数

asset: FileWithUploadUrls — 由 client.files.create_local_upload(...) 返回的 FileWithUploadUrls 实例。

file: typing.BinaryIO — 以二进制读取模式 ("rb") 打开的文件类对象。

max_workers: int — 传递给底层上传器的线程池并发数。默认值为 5。

headers: typing.Optional[typing.Dict[str, str]] — 合并到每个 S3 PUT 请求中的额外标头。根据 Frame.io 的要求,默认值为 {"x-amz-acl": "private"}

max_retries: int — 每个分片的重试次数。默认值为 3。

on_progress: typing.Optional[typing.Callable[[int, int], None]] — 可选回调,在每个分片后调用,参数为 (bytes_uploaded_so_far, total_bytes)方法 upload() -&gt; None — 上传文件。该方法会阻塞直到上传完成,或在出错时抛出异常。

用户

检查与持有者令牌关联的用户详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.users.show()

参数

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

版本堆栈

列出给定版本堆栈中的次项(文件)。

使用 include 查询参数选择性地在响应中包含其他属性。

如果您包含 media_links.original 且用户无权下载相应项目中的文件,则此端点将响应 403 Forbidden 错误。 如果由于该用户需要水印而请求的 media_links 不支持水印,导致内容无法访问,则请求将成功,但不支持的媒体链接将被设置为 null。 同样,如果请求的转码链接对于特定文件不存在(例如,在静态图像文件中包含 media_links.video_h264_180)或者转码过程尚未完成(即文件的状态为“已上传”而不是“已转码”),则响应负载中的媒体链接也将被设置为 null。 简而言之,客户端必须妥善处理 null 媒体链接。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid —

version_stack_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示版本堆栈详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
)

参数

account_id: Uuid —

version_stack_id: Uuid —

include: typing.Optional[VersionStacksShowRequestInclude] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

复制版本堆栈。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.version_stacks import VersionStackCopyParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.copy(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
copy_metadata=True,
data=VersionStackCopyParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid —

version_stack_id: Uuid —

copy_metadata: typing.Optional[bool] — 是否随版本堆栈一起复制元数据值

data: typing.Optional[VersionStackCopyParamsData]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出给定文件夹中的版本堆栈。

速率限制:每个 account_user 每 1 秒钟 5 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.list(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include="media_links",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)

参数

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

在父文件夹下创建新的版本堆栈。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.version_stacks import VersionStackCreateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=VersionStackCreateParamsData(
file_ids=[
"dd2a3cdd-fc90-41bd-a7b8-8a0447aec6d4",
"79fed48a-8372-496e-8dcb-5e959b9b9fcf",
],
),
)

参数

account_id: Uuid —

folder_id: Uuid —

data: VersionStackCreateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

将版本堆栈移动到另一个文件夹。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.version_stacks import VersionStackMoveParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.version_stacks.move(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=VersionStackMoveParamsData(
parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
),
)

参数

account_id: Uuid —

version_stack_id: Uuid —

data: VersionStackMoveParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

Webhook

列出给定工作区的 Webhook。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.webhooks.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

创建包含密钥的单个 Webhook。

有效事件:

file.createdfile.deletedfile.readyfile.updatedfile.upload.completedfile.versionedfile.copiedfolder.createdfolder.deletedfolder.updatedfolder.copiedcomment.completedcomment.createdcomment.deletedcomment.uncompletedcomment.updatedcustomfield.createdcustomfield.updatedcustomfield.deletedmetadata.value.updatedproject.createdproject.deletedproject.updatedcollection.createdcollection.updatedcollection.deletedshare.createdshare.updatedshare.deletedshare.viewed

速率限制:每个帐户 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.webhooks import WebhookCreateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.webhooks.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=WebhookCreateParamsData(
events=[
"file.created",
"file.deleted",
"file.ready",
"file.updated",
"file.upload.completed",
"file.versioned",
"file.copied",
"folder.created",
"folder.deleted",
"folder.updated",
"folder.copied",
"comment.completed",
"comment.created",
"comment.deleted",
"comment.uncompleted",
"comment.updated",
"customfield.created",
"customfield.updated",
"customfield.deleted",
"metadata.value.updated",
"project.created",
"project.deleted",
"project.updated",
"collection.created",
"collection.updated",
"collection.deleted",
"share.created",
"share.updated",
"share.deleted",
"share.viewed",
],
name="New Webhook",
url="https://url.example.com",
),
)

参数

account_id: Uuid —

workspace_id: Uuid —

data: WebhookCreateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

显示 Webhook 详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.webhooks.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

webhook_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

删除 Webhook。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.webhooks.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

webhook_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新 Webhook 详细信息。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio
from frameio.webhooks import WebhookUpdateParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.webhooks.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=WebhookUpdateParamsData(
active=True,
events=[
"file.created",
"file.deleted",
"file.ready",
"file.updated",
"file.upload.completed",
"file.versioned",
"file.copied",
"folder.created",
"folder.deleted",
"folder.updated",
"folder.copied",
"comment.completed",
"comment.created",
"comment.deleted",
"comment.uncompleted",
"comment.updated",
"customfield.created",
"customfield.updated",
"customfield.deleted",
"metadata.value.updated",
"project.created",
"project.deleted",
"project.updated",
"collection.created",
"collection.updated",
"collection.deleted",
"share.created",
"share.updated",
"share.deleted",
"share.viewed",
],
name="Updated Webhook",
url="https://url.example.com",
),
)

参数

account_id: Uuid —

webhook_id: Uuid —

data: WebhookUpdateParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

工作区权限

列出给定工作区的用户角色。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.workspace_permissions.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
include_deactivated=True,
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid

workspace_id: Uuid

includ_deactivated: typing.Optional[bool] — 支持在响应中包含已停用的用户。默认值为 false。

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从给定工作区中移除用户。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.workspace_permissions.workspace_user_roles_delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid

workspace_id: Uuid

user_id: Uuid

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

如果用户已添加到工作区,则更新给定工作区的用户角色。 如果用户未添加到工作区,则会添加该用户并分配给定角色。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio, UpdateUserRolesParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.workspace_permissions.workspace_user_roles_update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=UpdateUserRolesParamsData(
role="editor",
),
)

参数

account_id: Uuid

workspace_id: Uuid

user_id: Uuid

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

工作区

显示工作区详细信息。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.workspaces.show(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从帐户中删除工作区。

速率限制:每个 account_user 每 1.00 分钟 60 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
client.workspaces.delete(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

参数

account_id: Uuid —

workspace_id: Uuid —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

更新工作区。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio, WorkspaceParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.workspaces.update(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=WorkspaceParamsData(
name="My Workspace",
),
)

参数

account_id: Uuid —

workspace_id: Uuid —

data: WorkspaceParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

列出给定帐户的工作区。

速率限制:每个 account_user 每 1.00 分钟 100 次调用

usage
from frameio import Frameio
client = Frameio(
token="YOUR_TOKEN",
)
response = client.workspaces.index(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
after="<opaque_cursor>",
page_size=10,
include_total_count=False,
)
for item in response:
yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
yield page

参数

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“owner”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

不透明光标查询参数,用于返回分页结果的请求。

此值是自动生成的,且属于之前响应的链接的一部分。 该内容不属于人类可读格式。

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。

从帐户创建工作区。

速率限制:每个 account_user 每 1.00 分钟 10 次调用

usage
from frameio import Frameio, WorkspaceParamsData
client = Frameio(
token="YOUR_TOKEN",
)
client.workspaces.create(
account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
data=WorkspaceParamsData(
name="My Workspace",
),
)

参数

account_id: Uuid —

data: WorkspaceParamsData

request_options: typing.Optional[RequestOptions] — 特定于请求的配置。


PyPI

PyPI 上查看