Lybic Docs

延长沙箱使用时间

每个沙箱在创建时都会有一个由你设置的使用期限,期限结束后沙箱将被自动删除。如果你需要延长沙箱的使用时间,可以通过以下方法进行操作。

注意: 由于串流客户端的证书有效期限制,沙箱的所有累计续期时间不能超过 13天

延长时间是相对操作时间,相对操作时间不超过24小时,相对创建时间不超过13天

通过控制台延长沙箱使用时间

你可以在沙箱管理控制台-沙箱细节中手动延长沙箱的使用时间:

点击“延长”按钮,输入你需要延长的时间(单次最长可延长至1天,累积不超13天),然后点击“延长”。

Extend Sandbox

通过 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 小时)

注意事项

  1. 延长时间限制:单次延长时间不能少于 30 秒或超过 24 小时(86400 秒)。
  2. 总时长限制:沙箱的累计总使用时间不能超过 13 天,这是由于串流客户端的证书有效期限制。
  3. 相对时间maxLifeSeconds 参数是相对于当前时间的延长时间,而不是绝对时间戳。
  4. 认证要求:调用 API 需要在请求头中包含有效的 API Token。
  5. 权限要求:确保使用的 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 小时成功")
}

本页内容