jancd/qiniu-developer_ShareGPT huggingface dataset:
human: 如何处理七牛云的实时音视频QNTranscodingLiveStreamingTrack

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web
>QNTranscodingLiveStreamingTrack

#  QNTranscodingLiveStreamingTrack

最近更新时间: 2022-07-14 15:27:29

合流转推时，每一路流在画布中的配置

Index

Properties

  * trackID
  * x
  * y
  * zOrder
  * width
  * height
  * renderMode

Properties

trackID

  * trackID: string
  * 参与合流的 trackID

x

  * x?: number
  * track 在合流画布中位置的 x 坐标

y

  * y?: number
  * track 在合流画布中位置的 y 坐标

zOrder

  * zOrder?: number
  * track 在合流画布中位置的层级

> 值越大，层级越靠上。

width

  * width?: number
  * track 在合流画布中相应位置的宽

height

  * height?: number
  * track 在合流画布中相应位置的高

renderMode

  * renderMode?: [QNRenderMode](https://developer.qiniu.com/rtc/9065/WebQNTranscodingLiveStreamingTrack/9067/WebQNRenderMode)
  * track 画面合流时的填充方式

> 如果不做单独设置，填充模式将继承
> [QNTranscodingLiveStreamingConfig](https://developer.qiniu.com/rtc/9065/WebQNTranscodingLiveStreamingTrack/9086/WebQNTranscodingLiveStreamingConfig)。

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioEncoderConfig

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web >QNAudioEncoderConfig

#  QNAudioEncoderConfig

最近更新时间: 2022-07-14 15:19:04

音频采集编码配置

Index

Properties

  * sampleRate
  * sampleSize
  * stereo
  * bitrate

Properties

sampleRate

  * sampleRate?: number
  * 采样率(Hz)

sampleSize

  * sampleSize?: number
  * 采样大小

> sampleSize 建议设置为 16 bit

stereo

  * stereo?: boolean
  * 是否采用双声道

bitrate

  * bitrate?: number
  * 码率(Kbps)

> 音频最低 16 kbps，最高 128 kbps，若设置值超出最高码率或低于最低码率，则 sdk 会自动调整为最低或最高支持的码率。

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioEncoderConfiguration

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web
>QNAudioEncoderConfiguration

#  QNAudioEncoderConfiguration

最近更新时间: 2022-02-22 15:14:24

音频采集编码配置

Index

Properties

  * sampleRate
  * sampleSize
  * stereo
  * bitrate

Properties

sampleRate

  * sampleRate?: number
  * 采样率(Hz)

sampleSize

  * sampleSize?: number
  * 采样大小

stereo

  * stereo?: boolean
  * 是否采用双声道

bitrate

  * bitrate?: number
  * 码率(Kbps)

> 音频最低 16 kbps，最高 128 kbps，若设置值超出最高码率或低于最低码率，则 sdk 会自动调整为最低或最高支持的码率。

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNCanvasVideoTrackSource

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web
>QNCanvasVideoTrackSource

#  QNCanvasVideoTrackSource

最近更新时间: 2022-07-14 14:29:14

QNCanvasVideoTrack 数据源配置

Index

Properties

  * source
  * x
  * y
  * width
  * height

Properties

source

  * source: string | ArrayBuffer | File
  * 图片数据源信息，支持直接传入地址、ArrayBuffer 或者 File 对象

x

  * x: number
  * 在画布左上角 x 坐标

y

  * y: number
  * 在画布左上角 y 坐标

width

  * width?: number
  * 图片占据画布的宽度（默认为图片本身的宽度）

height

  * height?: number
  * 图片占据画布的高度（默认为图片本身的高度）

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNRenderMode

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web >QNRenderMode

#  QNRenderMode

最近更新时间: 2022-02-22 15:14:15

拉伸模式

Index

Enumeration members

  * FILL
  * ASPECT_FILL
  * ASPECT_FIT

Enumeration members

FILL

  * FILL = 'scaleToFit'
  * 视频被拉伸以填充视图的大小，而不需要保持长宽比

ASPECT_FILL

  * ASPECT_FILL = 'aspectFill'
  * 默认值, 视频通过保持长宽比来填充视图的大小。视频的某些部分可能被剪切

ASPECT_FIT

  * ASPECT_FIT = 'aspectFit'
  * 通过保持宽高比(可能显示黑色边框)，视频被缩放以适应视图的大小

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNConnectionDisconnectedReason

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web
>QNConnectionDisconnectedReason

#  QNConnectionDisconnectedReason

最近更新时间: 2022-02-22 15:14:12

连接断开原因

Index

Enumeration members

  * LEAVE
  * KICKED_OUT
  * ERROR

Enumeration members

LEAVE

  * LEAVE = 'LEAVE'
  * 主动退出

KICKED_OUT

  * KICKED_OUT = 'KICKED_OUT'
  * 被踢出房间

ERROR

  * ERROR = 'ERROR'
  * 发生错误，异常断开

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNElectronScreenSourceType

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web
>QNElectronScreenSourceType

#  QNElectronScreenSourceType

最近更新时间: 2022-02-15 17:44:18

Electron 环境下屏幕共享采集源类型

Index

Enumeration members

  * WINDOW
  * SCREEN
  * ALL

Enumeration members

WINDOW

  * WINDOW = 'window'
  * 窗口采集

SCREEN

  * SCREEN = 'screen'
  * 屏幕采集

ALL

  * ALL = 'all'
  * 展示所有选项

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNPlayerConfig

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web >QNPlayerConfig

#  QNPlayerConfig

最近更新时间: 2022-02-22 15:14:08

Track 播放配置

Index

Properties

  * mirror

Properties

mirror

  * mirror?: boolean
  * 是否开启镜像

SDK 会在播放 QNCameraVideoTrack 时默认开启，其他情况下默认关闭

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNVolumeIndicator

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web >QNVolumeIndicator

#  QNVolumeIndicator

最近更新时间: 2022-07-14 15:19:38

房间说话者音量回调数据，启用音量提示后，无论频道中有没有人说话，SDK 都会每两秒触发 QNRTCClient.on('[volume-
indicator](https://developer.qiniu.com/rtc/10265/WebQNVolumeIndicator/9090)')
回调。

Index

Properties

  * level
  * trackID
  * userID

Properties

level

  * level: number
  * 音量值，范围 0 ~ 1

trackID

  * trackID: string
  * track ID

userID

  * userID: string
  * 用户 ID

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNType

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Web >QNType

#  QNType

最近更新时间: 2024-01-12 11:31:06

Index

Type aliases

  * QNVideoEncoderConfigurationPreset
  * QNVideoEncoderConfigPreset
  * QNAudioEncoderConfigurationPreset
  * QNAudioEncoderConfigPreset
  * QNScreenEncoderConfigurationPreset
  * QNScreenEncoderConfigPreset
  * QNAudioSourceType
  * QNRecorderSource
  * QNRecorderVideoSource
  * QNRecorderAudioSource

Type aliases

QNVideoEncoderConfigurationPreset

  * QNVideoEncoderConfigurationPreset: '360p' | '480p' | '720p' | '1080p' | '1440p' | '4k'
  * 视频采集编码预设（deprecated use QNVideoEncoderConfigPreset instead）

QNVideoEncoderConfigPreset

  * QNVideoEncoderConfigPreset: '360p' | '480p' | '720p' | '1080p' | '1440p' | '4k'
  * 视频采集编码预设

preset | width | height | frameRate | bitrate(kbps)  
---|---|---|---|---  
360p | 640 | 360 | 15 | 400  
640x360_15 | 640 | 360 | 15 | 400  
640x360_30 | 640 | 360 | 30 | 600  
480p | 640 | 480 | 15 | 500  
640x480_15 | 640 | 480 | 15 | 500  
640x480_30 | 640 | 480 | 30 | 1000  
720p | 1280 | 720 | 15 | 1130  
1280x720_15 | 1280 | 720 | 15 | 1130  
1280x720_30 | 1280 | 720 | 30 | 2000  
1080p | 1920 | 1080 | 15 | 2080  
1920x1080_15 | 1920 | 1080 | 15 | 2080  
1920x1080_30 | 1920 | 1080 | 30 | 4000  
1440p | 2560 | 1440 | 30 | 4850  
2560x1440_30 | 2560 | 1440 | 30 | 4850  
4k | 3840 | 2160 | 30 | 8910  
3840x2160_30 | 3840 | 2160 | 30 | 8910  

QNAudioEncoderConfigurationPreset

  * QNAudioEncoderConfigurationPreset: 'LOW' | 'STANDARD' | 'STANDARD_STEREO' | 'HIGH' | 'HIGH_STEREO'
  * 音频采集编码预设值（deprecated use QNAudioEncoderConfigPreset instead）

QNAudioEncoderConfigPreset

  * QNAudioEncoderConfigPreset: 'LOW' | 'STANDARD' | 'STANDARD_STEREO' | 'HIGH' | 'HIGH_STEREO'
  * 音频采集编码预设值

preset | sampleRate(Khz) | stereo | bitrate(kbps) | sampleSize(bit)  
---|---|---|---|---  
LOW | 16000 | false | 24 | 16  
STANDARD | 48000 | false | 64 | 16  
STANDARD_STEREO | 48000 | true | 80 | 16  
HIGH | 48000 | false | 96 | 16  
HIGH_STEREO | 48000 | true | 128 | 16  

QNScreenEncoderConfigurationPreset

  * QNScreenEncoderConfigurationPreset: '480p' | '720p' | '1080p'
  * 屏幕分享采集编码预设值（deprecated use QNScreenEncoderConfigPreset instead）

QNScreenEncoderConfigPreset

  * QNScreenEncoderConfigPreset: '480p' | '720p' | '1080p'
  * 屏幕分享采集编码预设值

preset | width | height | frameRate  
---|---|---|---  
480p | 640 | 480 | 5  
720p | 1280 | 720 | 5  
1080p | 1920 | 1080s | 5  

QNAudioSourceType

  * QNAudioSourceType: string | File | AudioBuffer
  * 音频数据源类型

QNRecorderSource

  * QNRecorderSource: [QNRecorderVideoSource](https://developer.qiniu.com/rtc/9075/WebQNType/9075) | [QNRecorderAudioSource](https://developer.qiniu.com/rtc/9075/WebQNType/9075)
  * 需要录制的音视频轨

QNRecorderVideoSource

  * Required<Omit<[QNTranscodingLiveStreamingTrack](https://developer.qiniu.com/rtc/9075/WebQNType/9065/WebQNTranscodingLiveStreamingTrack), 'trackID' | 'renderMode'> & {track: MediaStreamTrack}>
  * 需要录制的视频轨

QNRecorderAudioSource

  * pick<[QNRecorderVideoSource](https://developer.qiniu.com/rtc/9075/WebQNType/9075), 'track'>
  * 需要录制的音频轨

以上内容是否对您有帮助？
human: 如何处理七牛云的云主机安全组列表

gpt: [云主机](https://developer.qiniu.com/qvm) > API 文档 > 安全组 >安全组列表

#  安全组列表

最近更新时间: 2020-12-29 16:37:28

# 请求路径

> `GET` /v1/vm/sgr

# 请求参数

名称 | 类型 | 位置 | 必须 | 描述  
---|---|---|---|---  
region_id | string | query | 否 | 地域 ID。  
security_group_id | string | query | 否 | 安全组 ID  
security_group_name | string | query | 否 | 安全组名称  
vpc_id | string | query | 否 | VPC ID  
page | integer | query | 否 | 页码。默认：1  
size | integer | query | 否 | 分页大小，最大100。默认20  
  
# 返回值

名称 | 类型 | 描述  
---|---|---  
request_id | string | 请求 ID  
page | integer | 页码  
size | integer | 分页大小  
total | integer | 安全组总量  
data | []SecurityGroup | 安全组列表  
  
### SecurityGroup

名称 | 类型 | 描述  
---|---|---  
region_id | string |  地域 ID  
security_group_id | string |  安全组 ID  
security_group_name | string |  安全组名称  
description | string |  安全组描述信息  
vpc_id | string |  VPC ID  
vpc_name | string |  VPC 名称  
client_token | string |  保证请求幂等性。从您的客户端生成一个参数值，确保不同请求间该参数值唯一。  
is_default | boolean |  是否为默认安全组，只在新建的时候插入该字段  
inner_access_policy | string |  安全组内的 ECS 实例之间的内网连通策略。 取值范围（取值不区分大小写）：

  * `Accept`：互通
  * `Drop`：隔离

  
created_at | string |  创建时间  
updated_at | string |  更新时间  
  
## 返回值示例

    
    
    {
      "data": [
        {
          "region_id": "grand-cn-north-4",
          "security_group_name": "sgr-default",
          "description": "System create default securityGroup",
          "vpc_id": "76b39642-dbdd-4e41-8",
          "vpc_name": "vpc-default",
          "client_token": "",
          "security_group_id": "c2e848ce-ba9c-41b0",
          "is_default": true,
          "inner_access_policy": "Accept",
          "updated_at": "2020-12-01T15:04:55.425+08:00",
          "created_at": "2020-12-01T15:04:54.913+08:00"
        },
        {
          "region_id": "cn-zhangjiakou",
          "security_group_name": "sgr-default",
          "description": "System create default securityGroup",
          "vpc_id": "vpc-8vb6e",
          "vpc_name": "vpc-default",
          "client_token": "",
          "security_group_id": "sg-8v",
          "is_default": true,
          "inner_access_policy": "Accept",
          "updated_at": "2020-11-10T14:37:57.044+08:00",
          "created_at": "2020-11-10T14:37:56.877+08:00"
        }
      ],
      "page": 1,
      "size": 10,
      "total": 2,
      "request_id": "ScKvEW-d8GroiVMW"
    }
    

以上内容是否对您有帮助？
human: 如何处理七牛云的云主机弹性防护

gpt: [云主机](https://developer.qiniu.com/qvm) > 使用指南 > 网络安全产品 >经典版 DDoS 高防 IP >使用须知
>弹性防护

#  弹性防护

最近更新时间: 2021-11-17 15:48:39

# 弹性防护有什么作用？

当攻击流量超过购买的保底防护峰值时，为了防止出现 [IP封堵
__](https://developer.qiniu.com/qvm/manual/5003/ddos-ip-blocking)，建议您开启弹性防护。  
开启弹性防护后，经典版 DDoS 高防 IP 将会继续为您提供防护，直到攻击流量到达防护峰值。

# 什么是防护峰值？

防护峰值指经典版 DDoS 高防 IP 服务可提供抵御攻击流量的能力范围。包含保底防护峰值和弹性防护峰值。

保底防护峰值：指高防服务实例的保底防护能力，保底部分为按月预付费。  
弹性防护峰值：指高防服务实例的最大弹性防护能力，弹性部分为按天后付费。  
如果用户启用且选配了弹性防护峰值，则弹性防护峰值，作为高防服务实例，能够防护攻击的最高防护峰值，若攻击流量超过最高防护峰值，则被攻击 IP 将触发封堵。  
用户可根据自身业务需求，随时变更弹性防护值，自主设定弹性防护上限。

# 弹性防护如何收费？

  * 用户可以免费开启弹性防护。只有当攻击值超过保底防护峰值，即触发弹性防护后，才收取费用。用户触发弹性防护后的计费模式是按天按量收费，根据当天弹性防护峰值区间进行收费，账单次月生成。
  * 若 1 个 IP 在某一天内被攻击多次，且都超过了保底防护的值，但都在弹性防护值内，费用按当天的最高的攻击流量计算。
  * 详细费用请参见 [经典版 DDoS 高防 IP 价格表 __](https://developer.qiniu.com/qvm/manual/4973/security-ddos-ip-price-list)。

以上内容是否对您有帮助？
human: 如何处理七牛云的云主机CC 防护

gpt: [云主机](https://developer.qiniu.com/qvm) > 使用指南 > 网络安全产品 >经典版 DDoS 高防 IP >使用须知
>CC 防护

#  CC 防护

最近更新时间: 2018-08-22 13:24:52

# 什么是 CC 攻击？

CC 攻击即 ChallengeCollapsar 攻击，指攻击者借助代理服务器生成指向受害主机的合法请求，拥塞被攻击方的网络和服务器性能，实现攻击目的。

# 什么是 CC 防护？

CC 防护即指针对 CC 攻击的防护。

以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储存储区域

gpt: [对象存储](https://developer.qiniu.com/kodo) > 产品简介 > 存储区域

#  存储区域

最近更新时间: 2024-05-16 17:02:28

## 新区域上线

对象存储新上线 **亚太-河内、亚太-胡志明** 区域，可在[七牛控制台
__](https://portal.qiniu.com/kodo)上申请开通使用。[查看新区域服务定价
__](https://www.qiniu.com/prices/kodo#payasyougo)  
上线初期，新区域

  * 暂时不支持使用音视频处理的[工作流 __](https://developer.qiniu.com/dora/6490/the-workflow-template)、[触发器 __](https://developer.qiniu.com/dora/6489/task-workflow)功能。
  * 暂时不支持使用 **自定义数据处理和内容审核** 服务。

## 区域和访问域名

存储区域 Region | 区域 Region ID | 域名  
---|---|---  
华东-浙江 | z0 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-z0.qiniup.com`  
源站下载：`http(s)://iovip-z0.qiniuio.com`  
对象管理：`http(s)://rs-z0.qiniuapi.com`  
对象列举：`http(s)://rsf-z0.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
华东-浙江2 | cn-east-2 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-cn-east-2.qiniup.com`  
源站下载：`http(s)://iovip-cn-east-2.qiniuio.com`  
对象管理：`http(s)://rs-cn-east-2.qiniuapi.com`  
对象列举：`http(s)://rsf-cn-east-2.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
华北-河北 | z1 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-z1.qiniup.com`  
源站下载：`http(s)://iovip-z1.qiniuio.com`  
对象管理：`http(s)://rs-z1.qiniuapi.com`  
对象列举：`http(s)://rsf-z1.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
华南-广东 | z2 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-z2.qiniup.com`  
源站下载：`http(s)://iovip-z2.qiniuio.com`  
对象管理：`http(s)://rs-z2.qiniuapi.com`  
对象列举：`http(s)://rsf-z2.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
北美-洛杉矶 | na0 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-na0.qiniup.com`  
源站下载：`http(s)://iovip-na0.qiniuio.com`  
对象管理：`http(s)://rs-na0.qiniuapi.com`  
对象列举：`http(s)://rsf-na0.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
亚太-新加坡（原东南亚） | as0 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-as0.qiniup.com`  
源站下载：`http(s)://iovip-as0.qiniuio.com`  
对象管理：`http(s)://rs-as0.qiniuapi.com`  
对象列举：`http(s)://rsf-as0.qiniuapi.com`  
计量查询：`http(s)://api.qiniuapi.com`  
亚太-河内 | ap-southeast-2 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-ap-southeast-2.qiniup.com`  
源站下载：`http(s)://iovip-ap-southeast-2.qiniuio.com`  
对象管理：`http(s)://rs-ap-southeast-2.qiniuapi.com`  
对象列举：`http(s)://rsf-ap-southeast-2.qiniuapi.com`  
计量查询：`http(s)://api-ap-southeast-2.qiniuapi.com`  
亚太-胡志明 | ap-southeast-3 | 空间管理：`http(s)://uc.qiniuapi.com`  
源站上传：`http(s)://up-ap-southeast-3.qiniup.com`  
源站下载：`http(s)://iovip-ap-southeast-3.qiniuio.com`  
对象管理：`http(s)://rs-ap-southeast-3.qiniuapi.com`  
对象列举：`http(s)://rsf-ap-southeast-3.qiniuapi.com`  
计量查询：`http(s)://api-ap-southeast-3.qiniuapi.com`  
  
以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储编程模型

gpt: [对象存储](https://developer.qiniu.com/kodo) > 产品简介 > 编程模型

#  编程模型

最近更新时间: 2022-03-02 11:56:24

以保护数据安全和考虑架构合理性为出发点，我们对基于七牛云存储服务如何进行开发提供了一些设计和编码建议。希望开发者在使用七牛云存储服务之前详细阅读这些建议，并尽可能的符合这些原则，以免造成不必要的时间浪费和带来数据安全风险。

# 基本结构

基于七牛云存储服务构建的应用，建议使用如下基本架构：

![基本模型](https://dn-odum9helk.qbox.me/FuAHhZgiYaHTDqLritFe1K85AVrI)

从该结构图，我们可以看到以下几个关键组件：

  * 七牛云存储服务

七牛云存储服务是以[键值对](https://developer.qiniu.com/kodo/manual/1277/product-
introduction#2)方式提供非结构化资源存储服务。向业务服务器提供资源管理服务，向客户端提供资源上传和下载服务。

  * 业务服务器

业务服务器需要开发者自行管理和维护，并且至少提供如下几个基本功能：

    * 生成各种安全凭证（参考[安全机制](https://developer.qiniu.com/kodo/manual/1644/security)），安全凭证的创建不能在客户端进行，否则会产生极大的安全风险。
    * 上传域名等跟随安全凭证一起下发给客户端，提高域名等变更灵活性。各区域域名情况参考 [域名列表](https://developer.qiniu.com/kodo/product_introduction/1671/region-endpoint-fq)
    * 使用关系型数据库（例如MySQL）管理用户帐号信息。最终用户信息的管理并非云存储服务的功能范畴。云存储服务只管理企业账号。
    * 使用数据库管理资源元数据和资源之间的关联关系。
    * 响应客户端的业务请求，执行业务流程并返回执行结果。
  * 客户端

客户端通常同时是资源的生产方和消费方。客户端在展示内容时，通常需要先从业务服务器获取资源的元信息，并得到必要的[下载凭证](https://developer.qiniu.com/kodo/manual/1202/download-
token)，然后使用下载凭证从七牛云存储服务获取待展示的资源内容，从而实现一个完整的内容展示过程。

# 业务流程

关键的几个交互过程：

  * 上传

客户端在上传资源到七牛云存储之前要先从业务服务器获取一个有效的[上传凭证](https://developer.qiniu.com/kodo/manual/1208/upload-
token)，因此需要先后和两个服务端打交道。

![基本上传流程](https://dn-odum9helk.qbox.me/Fmy1Y_s9I4oCPYuMGDrvYxCRv2FM)

如果有设置回调，则上传完成时七牛云存储会自动发起回调到指定的业务服务器。

![带回调的上传流程](https://dn-odum9helk.qbox.me/FkPZ31ECmtGnEisOahMKc5kQkuRr)

  * 下载

公开资源不需要对应的下载凭证，客户端可以直接从七牛云存储下载对应资源。私有资源需要对应的下载凭证，因此必须先和业务服务器打交道。

按照实际的使用场景，客户端对于内容的展示非常类似一个动态网页的生成过程，因此无论该页面内容是公开还是私有，均需要从业务服务器获取展示该页面的动态布局信息。所以通常显示过程也是需要先后和业务服务器及七牛云存储服务打交道。

  * 资源管理

为了防止安全漏洞，资源管理操作应该只在业务服务器端进行。如果允许客户端进行资源管理，即使将[管理凭证](https://developer.qiniu.com/kodo/manual/1201/access-
token)的生成动作放到业务服务器端进行，仍然很容易被第三方截获请求全文，从而导致重放攻击的风险。

# 关键原则

这个模型的关键点如下：

  * 整个架构中需要一个业务服务器组件。
  * 无论如何，[访问密钥（AK/SK）](https://developer.qiniu.com/af/kb/1334)均不得包含在客户端的分发包中（如二进制代码、配置文件或网页中）。
  * SecretKey不得在任何场景中的公网上传输，更不得传输到客户端。
  * 业务服务器端应维持一个用于管理资源元数据的数据库和一个用于管理最终用户账号信息的数据库。
  * 原则上客户端和七牛云存储之间的交互只有上传和下载，不应使用任何其他的API。

以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储账号欠费保护期功能限制

gpt: [对象存储](https://developer.qiniu.com/kodo) > 购买指南 > 账号欠费保护期功能限制

#  账号欠费保护期功能限制

最近更新时间: 2022-05-09 10:20:01

依据七牛云 [新版欠费流程](https://developer.qiniu.com/af/kb/5996/new-owe-the-process-
description) 规定，针对处于欠费保护期的账号，七牛云对象存储的开发者平台会限制部分功能的使用，详见下表说明。

## 欠费保护期限制功能列表

功能 | 限制说明  
---|---  
新建空间 | 禁用  
绑定域名 | 禁用  
样式分隔符 | 可以查看已有的设置信息  
禁止修改设置  
图片样式 | 可以查看、删除已有图片样式  
禁止新增、修改图片样式  
转码样式 | 可以查看、删除已有转码样式  
禁止新增、修改转码样式  
空间设置 | 可以查看已有的空间设置信息  
禁止修改空间设置信息  
跨区域同步 | 可以查看、已有的跨区域同步任务信息  
禁止创建、启动/暂停跨区域同步任务  
  
以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储快速入门文档

gpt: [对象存储](https://developer.qiniu.com/kodo) > 快速入门 > 快速入门文档

#  快速入门文档

最近更新时间: 2023-08-16 15:03:10

阅读本文后，即可轻松创建和删除空间，上传、下载和删除文件。

七牛对象存储将数据文件以资源的形式上传到空间中。您可以创建一个或者多个空间，然后向每个空间中上传一个或多个文件。通过获取已上传文件的地址进行文件的分享和下载。您还可以通过修改存储空间或文件的属性或元信息来设置相应的访问权限。快速入门接下来将假设您至少已经熟悉七牛云对象存储的[基本概念](https://developer.qiniu.com/kodo/manual/3978/the-
basic-concept)。

为了顺利完成快速入门，您需要一个七牛云账号 ([点击注册
__](https://portal.qiniu.com/signup/choice))。另外推荐使用谷歌浏览器（Chrome）。

本快速入门指南涵盖以下内容：

  * Step 1：创建空间
  * Step 2：上传文件
  * Step 3：下载文件
  * Step 4：删除文件
  * Step 5：删除空间

关于七牛云对象存储，请参阅 [对象存储文档](https://developer.qiniu.com/kodo)。  
  

# 步骤1：创建空间

首先，您需要创建一个 [空间（Bucket）](https://developer.qiniu.com/kodo/manual/3978/the-
basic-concept#kodo-bucket)。

  1. 登录 [七牛开发者平台 __](https://portal.qiniu.com/signin)。

  2. 进入 [空间管理 __](https://portal.qiniu.com/bucket)界面  
![](https://dn-odum9helk.qbox.me/FquFNwzzY3wS3Rw5XfVE2uKpB_i2)

  3. 点击[新建空间 __](https://portal.qiniu.com/kodo/bucket?shouldCreateBucket=true)  
**注： 如果您是体验用户，新建空间时，会因账号信息未完善而创建失败。**  
![](https://dn-odum9helk.qbox.me/FkR0Yx8Jqw54vYO64ZwMyQkae9ZZ)

  4. 空间创建成功之后，点击**空间名称** 或操作栏的**概览** ，即可进入空间概览  
![](https://dn-odum9helk.qbox.me/Fo67IvKSYNV0NOVWvD3t90tmFVVr)  
![](https://dn-odum9helk.qbox.me/FubuLzcRUtmMkp-mwTmVW9DyovIq)

  5. 点击**文件管理** ，即可在此界面进行上传、下载、访问、修改文件等操作。  
![](https://dn-odum9helk.qbox.me/FmbP-dcvQODuy6hX3mSX8Bil5LSY)  
  

# 步骤2：上传文件

空间创建成功后，您可以向空间里上传资源。资源可以是任意的文件：文档，照片，视频，音乐文件，或其它文件类型。

  1. 在 [空间列表 __](https://portal.qiniu.com/kodo/bucket)中选择一个空间，然后进入**文件管理**

  2. 点击**上传文件** ，选择指定文件，点击**开始上传** 。  
![](https://dn-odum9helk.qbox.me/FoAhlA-FnjzxGJUYpLNQxAfZBmzc)  
![](https://dn-odum9helk.qbox.me/Fpz4SOfw9C4jn7BeRG9O0L0XzkYK)  
![](https://dn-odum9helk.qbox.me/FntQr6a09ZMt0s1H9JLrlMGzPAzu)

  3. 您可以在任务中心查看文件上传状态  
![](https://dn-odum9helk.qbox.me/FmJE6dYX67Z2XdjxUbj64JnAwAVR)  
  

# 步骤3：下载文件

您可以通过浏览器打开和查看已经添加至空间的文件。您也可以下载该文件到您的本地计算机。

  1. 在 [空间列表 __](https://portal.qiniu.com/kodo/bucket)中选择一个空间，然后进入**文件管理**

  2. 在指定文件栏，点击右侧**更多** ，点击**下载**  
![](https://dn-odum9helk.qbox.me/FlioA8fpsCSmGYZNFxsi05ZE2Iuu)  
或选择多个文件，点击**批量操作** 进行**批量下载**  
![](https://dn-odum9helk.qbox.me/Fk1qxfgqLCgzfkYCvqA2Mrr4w54A)  
  

# 步骤4：删除文件

如果您不再需要把已上传的文件保存在七牛空间中，您可以删除它。  
**注：删除空间中的文件后，不可恢复，慎重操作。**

  1. 在 [空间列表 __](https://portal.qiniu.com/kodo/bucket)中选择一个空间，然后进入**文件管理**

  2. 在指定文件栏，点击右侧**更多** ，点击**删除**  
![](https://dn-odum9helk.qbox.me/FpCsFq90G9u-ueLS53E2lOrrdbOU)  
或选择多个文件，点击**批量操作** 进行**批量删除**  
![](https://dn-odum9helk.qbox.me/FtA0mC2sfsWgjSZ3ncdYO8m_-R_g)  
  

# 步骤5：删除空间

如果您不再需要已创建的空间时，您可以删除它。  
**注：空间不为空时，禁止删除，需先删除空间内的文件。**

  1. 在 [空间列表 __](https://portal.qiniu.com/kodo/bucket)中选择一个空间，然后进入**空间设置**

  2. 找到空间设置最下方的删除空间卡片，点击**删除空间** 后，需要**输入账号密码** 才可成功删除。  
![](https://dn-odum9helk.qbox.me/Fh81Bano-uTJ5JRBMRd50gaw7uDT)  
![](https://dn-odum9helk.qbox.me/Fo6yVUafEbH2QXRhLh1ROtTdfxfS)  
![](https://dn-odum9helk.qbox.me/FgpAyVHni1vCSULOds0Vqx7sf2lG)

以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储开发指南

gpt: [对象存储](https://developer.qiniu.com/kodo) > 使用指南 > 开发指南

#  开发指南

最近更新时间: 2022-11-08 12:11:01

本开发指南将引导您理解和使用对象存储 Kodo。  
您将在本开发指南中，了解以下内容：

开发操作 | 子操作  
---|---  
[安全机制](https://developer.qiniu.com/kodo/development_guidelines/1644/security) | 
* 上传策略 
* 上传凭证 
* 下载凭证 
* 管理凭证

  * 管理凭证历史文档

  
[上传资源](https://developer.qiniu.com/kodo/development_guidelines/1234/upload-types) | 
* 表单上传
* 分片上传 v1
* 分片上传 v2
* 简单反馈
* 回调通知
* 303 重定向
* 异步数据预处理
* 自定义响应内容
* 变量  
[下载资源](https://developer.qiniu.com/kodo/development_guidelines/1232/download-process) | 
* 公开资源下载
* 私有资源下载
* 下载设置
* 高级下载  
[管理存储空间](https://developer.qiniu.com/kodo/development_guidelines/8599/management-of-storage-space) | 
* 绑定源站域名 
* 访问控制 
* 静态页面管理
* 空间备注 
* 文件客户端缓存
* 重定向 
* 空间授权 
* 空间标签 
* 跨域资源共享 
* 生命周期管理 
* 事件通知 
* 设置镜像回源 
* 设置跨区域同步 
* 空间访问日志 
* 删除存储空间  
[数据安全](https://developer.qiniu.com/kodo/development_guidelines/8625/dev-data-security) | 
* Referer 防盗链 
* 对象锁定  
[数据处理](https://developer.qiniu.com/kodo/development_guidelines/8615/dev-the-data-processing) | 
* 图片样式 
* 转码样式 
* 设置原图保护  
[AWS S3 兼容](https://developer.qiniu.com/kodo/development_guidelines/5906/storage-type) | 
* 存储类型
* 服务域名
* 签名认证
* 临时安全凭证
* 兼容公共头
* 兼容 API

  * 使用 Bucket Policy 授权

* 兼容工具示例  
[附录](https://developer.qiniu.com/kodo/development_guidelines/1231/appendix) |   
  
以上内容是否对您有帮助？
human: 如何处理七牛云的对象存储安全机制

gpt: [对象存储](https://developer.qiniu.com/kodo) > 使用指南 >
[开发指南](https://developer.qiniu.com/kodo/development_guidelines/8596/development-
guidelines) > 安全机制

#  安全机制

最近更新时间: 2021-01-28 11:52:03

数据安全性是云存储服务的重中之重。云存储的安全机制主要需要考虑以下几个因素：

  * 如何判断该请求方是否合法，且对目标空间有相应的访问权限。
  * 因为服务的访问协议同时支持 HTTP 和 HTTPS，服务端需要判断收到的请求是否经过篡改。
  * 相比上传新资源，覆盖文件或删除已有资源拥有更高的风险。因此对上传或修改动作，需要确认请求方是否拥有修改或删除的权限。

在使用七牛云存储服务的过程中，需要考虑安全机制的场景主要有如下几种：

  * 上传资源
  * 访问资源
  * 管理和修改资源

这三个场景需要考虑不同的安全因素，因此七牛针对性的提供了三种安全机制：[上传凭证](https://developer.qiniu.com/kodo/manual/1208/upload-
token)、[下载凭证](https://developer.qiniu.com/kodo/manual/1202/download-
token)和[管理凭证](https://developer.qiniu.com/kodo/manual/1201/access-token)。

因为凭证的生成需要用到SecretKey，因此该生成动作不应在不受信任的环境中进行。需要注意的是，开发者绝不能将密钥包含在分发给最终用户的程序中，无论是包含在配置文件中还是二进制文件中都会带来非常大的密钥泄漏风险。

推荐的模型如下所示：

![凭证创建和使用流程](https://dn-odum9helk.qbox.me/Fi5KMuul0usiNB7_OyofIjVw-K2e)

# 密钥（AccessKey/SecretKey）

密钥用于以上几种凭证的生成。以 SecretKey 为参数，配合适当的签名算法，可以得到原始信息的数字签名，防止内容在传递过程中被伪造或篡改。

密钥通常是成对创建和使用，包含一个 AccessKey 和一个 SecretKey。其中 AccessKey 会在传输中包含，而用户必须保管好
SecretKey 不在网络上传输以防止被窃取。若 SecretKey 被恶意第三方窃取，可能导致非常严重的数据泄漏风险。因此，如发现 SecretKey
被非法使用，管理员应第一时间在七牛开发者平台的[密钥管理 __](https://portal.qiniu.com/user/key)中 更换密钥。

在具体描述各种凭证的详细生成过程中我们会看到 AccessKey 和 SecretKey 是如何被使用的。

# 上传凭证（UploadToken）

客户端上传前需要先获取从服务端颁发的上传凭证，并在上传资源时将上传凭证包含为请求内容的一部分。不带凭证或带非法凭证的请求将返回 HTTP 错误码
401，代表认证失败。

生成上传凭证时需要指定以下要素：

  * 权限，指定上传的目标空间或允许覆盖的指定资源。
  * 凭证有效期，即一个符合[Unix时间戳](https://developer.qiniu.com/kodo/glossary/1647/u)规范的数值，单位为秒。  
**注意：**  
因为时间戳的创建和验证在不同的服务端进行（在业务服务器创建，在云存储服务器验证），因此开发者的业务服务器需要尽可能校准时间，否则可能出现凭证刚创建就过期等各种奇怪的问题。

  * 可选择设置的最终用户标识 ID。这是为了让业务服务器在收到结果回调时能够识别产生该请求的最终用户信息。

我们使用[上传策略 (PutPolicy)](https://developer.qiniu.com/kodo/manual/1206/put-
policy)保存和传递这些设置。关于上传策略和上传凭证的生成细节，请查阅[上传凭证](https://developer.qiniu.com/kodo/manual/1208/upload-
token)。

# 下载凭证（DownloadToken）

下载私有资源的请求需要带一个合法的下载凭证。不带凭证或带非法凭证的请求将返回 HTTP 错误码 401，代表认证失败。

与上传凭证相比，下载凭证的作用比较简单：

  * 保证请求发起者拥有对目标空间的访问权限。
  * 保证服务端收到的下载请求内容未经中途篡改，具体包括目标资源的 URI 和该访问请求的有效期信息均应未受到篡改。

关于下载凭证的生成细节，请查阅[下载凭证](https://developer.qiniu.com/kodo/manual/1202/download-
token)。

# 防盗链

下载还有一种常见的场景，即公开资源的防盗链，例如禁止特定来源域名的访问，禁止非浏览器发起的访问等。

我们可以通过 HTTP 协议支持的 Referer 机制即[HTTP
Referer](https://developer.qiniu.com/kodo/glossary/1643/h)来进行相应的来源识别和管理。

防盗链是一个系统设置，不影响开发工作。如发现有盗链情况，开发者可在[七牛开发者平台
__](https://portal.qiniu.com/)里的**融合CDN加速** 中的 **高级配置** 进行设置。

# 管理凭证（AccessToken）

在管理现有资源时，例如查看资源元数据、删除或移动资源等，通常需要带一个合法的管理凭证。不带凭证或带非法凭证的管理请求将返回 HTTP 错误码
401，代表认证失败。

管理凭证的作用与下载凭证比较类似：

  * 保证请求发起者拥有对目标空间的管理权限。
  * 保证服务端收到的管理请求内容未经中途篡改，具体包括代表管理动作的 URI 和该管理动作的参数信息均应未受到篡改。

关于管理凭证的生成细节，请查阅[管理凭证](https://developer.qiniu.com/kodo/manual/1201/access-
token)。

# 跨域访问

出于安全的考虑，Web 浏览器从很早之前就定下同域安全策略的标准，默认情况下同一域名下的页面只能向同域（包括 CNAME 域名、端口）下的 URL
发送所有类型的 HTTP 请求。而向不同域的地址发送非 GET 请求时，默认情况下只能返回同域安全策略错误。

对此，在发起上传或下载请求的时候，服务会返回相应的支持跨域的 Header：

  
上传(`upload.qiniup.com`)

    
    
    Access-Control-Allow-Headers: X-File-Name, X-File-Type, X-File-Size
    Access-Control-Allow-Methods: OPTIONS, HEAD, POST
    Access-Control-Allow-Origin: *
    

  
下载(`<bucket>.qiniudn.com`)

    
    
    Access-Control-Allow-Origin: *
    

以上内容是否对您有帮助？