延长沙箱使用时间
每个沙箱在创建时都会有一个由你设置的使用期限,期限结束后沙箱将被自动删除。如果你需要延长沙箱的使用时间,可以通过以下方法进行操作。
注意: 由于串流客户端的证书有效期限制,沙箱的所有累计续期时间不能超过 13天。
延长时间是相对操作时间,相对操作时间不超过24小时,相对创建时间不超过13天
通过控制台延长沙箱使用时间
你可以在沙箱管理控制台-沙箱细节中手动延长沙箱的使用时间:
点击“延长”按钮,输入你需要延长的时间(单次最长可延长至1天,累积不超13天),然后点击“延长”。
通过 API 延长沙箱使用时间
你也可以通过 API 方式编程式地延长沙箱使用时间。
API 端点
POST /api/orgs/{orgId}/sandboxes/{sandboxId}/extend请求示例
curl -X POST "https://api.lybic.cn/api/orgs/{orgId}/sandboxes/{sandboxId}/extend" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"maxLifeSeconds": 3600
}'import asyncio
from lybic import LybicClient, LybicAuth
async def main():
async with LybicClient(
LybicAuth(
org_id="ORG-xxxx",
api_key="lysk-xxxxxxxxxxx",
endpoint="https://api.lybic.cn/"
)
) as client:
# 延长沙箱 1 小时(3600 秒)
await client.sandbox.extend(
sandbox_id="SBX-xxxx",
max_life_seconds=3600
)
print("沙箱延长成功")
if __name__ == "__main__":
asyncio.run(main())import { LybicClient } from '@lybic/core'
const lybic = new LybicClient({
baseUrl: 'https://api.lybic.cn',
orgId: 'ORG-xxxx',
apiKey: 'lysk-your-api-key-here',
})
// 延长沙箱 1 小时(3600 秒)
await lybic.client.POST('/api/orgs/{orgId}/sandboxes/{sandboxId}/extend', {
params: {
path: {
orgId: lybic.orgId,
sandboxId: 'SBX-xxxx',
},
},
body: {
maxLifeSeconds: 3600,
},
})
console.log('沙箱延长成功')package main
import (
"context"
"fmt"
"github.com/lybic/lybic-sdk-go"
)
func main() {
ctx := context.Background()
client, _ := lybic.NewClient(nil)
// 延长沙箱 1 小时(3600 秒)
var maxLife float32 = 3600
err := client.ExtendSandbox(ctx, "SBX-xxxx", lybic.ExtendSandboxDto{
MaxLifeSeconds: &maxLife,
})
if err != nil {
fmt.Printf("延长沙箱时出错: %v\n", err)
return
}
fmt.Println("沙箱延长成功")
}参数说明
orgId: 组织 ID(路径参数)sandboxId: 沙箱 ID(路径参数)maxLifeSeconds: 延长的时间,单位为秒,相对于当前时间计算(请求体参数)- 最小值:30 秒
- 最大值:86400 秒(24 小时)
- 默认值:3600 秒(1 小时)
注意事项
- 延长时间限制:单次延长时间不能少于 30 秒或超过 24 小时(86400 秒)。
- 总时长限制:沙箱的累计总使用时间不能超过 13 天,这是由于串流客户端的证书有效期限制。
- 相对时间:
maxLifeSeconds参数是相对于当前时间的延长时间,而不是绝对时间戳。 - 认证要求:调用 API 需要在请求头中包含有效的 API Token。
- 权限要求:确保使用的 API Token 具有操作该组织和沙箱的权限。
示例:延长 2 小时
curl -X POST "https://api.lybic.cn/api/orgs/my-org-id/sandboxes/my-sandbox-id/extend" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"maxLifeSeconds": 7200
}'import asyncio
from lybic import LybicClient, LybicAuth
async def main():
async with LybicClient(
LybicAuth(
org_id="my-org-id",
api_key="lysk-xxxxxxxxxxx",
endpoint="https://api.lybic.cn/"
)
) as client:
# 延长沙箱 2 小时(7200 秒)
await client.sandbox.extend_life(
sandbox_id="my-sandbox-id",
seconds=7200
)
print("沙箱延长 2 小时成功")
if __name__ == "__main__":
asyncio.run(main())import { LybicClient } from '@lybic/core'
const lybic = new LybicClient({
baseUrl: 'https://api.lybic.cn',
orgId: 'my-org-id',
apiKey: 'lysk-your-api-key-here',
})
// 延长沙箱 2 小时(7200 秒)
await lybic.client.POST('/api/orgs/{orgId}/sandboxes/{sandboxId}/extend', {
params: {
path: {
orgId: lybic.orgId,
sandboxId: 'my-sandbox-id',
},
},
body: {
maxLifeSeconds: 7200,
},
})
console.log('沙箱延长 2 小时成功')package main
import (
"context"
"fmt"
"github.com/lybic/lybic-sdk-go"
)
func main() {
ctx := context.Background()
config := lybic.NewConfig()
config.OrgId = "my-org-id"
config.ApiKey = "your-api-key"
client, _ := lybic.NewClient(config)
// 延长沙箱 2 小时(7200 秒)
var maxLife float32 = 7200
err := client.ExtendSandbox(ctx, "my-sandbox-id", lybic.ExtendSandboxDto{
MaxLifeSeconds: &maxLife,
})
if err != nil {
fmt.Printf("延长沙箱时出错: %v\n", err)
return
}
fmt.Println("沙箱延长 2 小时成功")
}