REST Resource: transferJobs

资源:TransferJob

此资源表示定期运行的转移作业的配置。

JSON 表示法
{
  "name": string,
  "description": string,
  "projectId": string,
  "transferSpec": {
    object (TransferSpec)
  },
  "replicationSpec": {
    object (ReplicationSpec)
  },
  "notificationConfig": {
    object (NotificationConfig)
  },
  "loggingConfig": {
    object (LoggingConfig)
  },
  "schedule": {
    object (Schedule)
  },
  "eventStream": {
    object (EventStream)
  },
  "status": enum (Status),
  "creationTime": string,
  "lastModificationTime": string,
  "deletionTime": string,
  "latestOperationName": string
}
字段
name

string

在创建作业时分配的唯一名称(在转移项目中)。如果 CreateTransferJobRequest 中的此字段为空,则存储转移服务会分配一个唯一名称。否则,系统会将指定的名称用作此作业的唯一名称。

如果指定的名称已被作业使用,则创建请求将失败并显示 ALREADY_EXISTS 错误。

此名称必须以 "transferJobs/" 前缀开头,以字母或数字结尾,且不得超过 128 个字符。对于涉及 PosixFilesystem 的传输,此名称必须以 transferJobs/OPI 开头。对于所有其他转移类型,此名称不得以 transferJobs/OPI 开头。

非 PosixFilesystem 示例:"transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$"

PosixFilesystem 示例:"transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$"

应用不得依赖于强制执行涉及 OPI 的命名要求。

无效的作业名称会失败并显示 INVALID_ARGUMENT 错误。

description

string

用户为作业提供的说明。使用 Unicode 编码时,其长度上限为 1024 个字节。

projectId

string

作业所属的 Google Cloud 项目的 ID。

transferSpec

object (TransferSpec)

转移规范。

replicationSpec

object (ReplicationSpec)

复制规范。

notificationConfig

object (NotificationConfig)

通知配置。

loggingConfig

object (LoggingConfig)

日志记录配置。

schedule

object (Schedule)

指定转移作业的安排。这是一个可选字段。如果未设置此字段,则作业将永远不会执行转移,除非您调用 transferJobs.run 或将作业更新为具有非空时间表。

eventStream

object (EventStream)

为事件驱动型转移的转移作业指定事件流。指定 EventStream 后,系统会忽略 Schedule 字段。

status

enum (Status)

作业的状态。必须为 CreateTransferJobRequests 指定此值。

注意:新作业状态的影响会在后续作业运行期间生效。例如,如果您将作业状态从 ENABLED 更改为 DISABLED,并且转移生成的操作正在运行,则状态更改不会影响当前操作。

creationTime

string (Timestamp format)

仅限输出。转移作业的创建时间。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

lastModificationTime

string (Timestamp format)

仅限输出。上次修改转移作业的时间。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

deletionTime

string (Timestamp format)

仅限输出。转移作业被删除的时间。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

latestOperationName

string

此 JobConfig 中最近启动的 TransferOperation 的名称。如果已为此 JobConfig 创建 TransferOperation,则显示此字段。

ReplicationSpec

指定跨存储分区复制作业的配置。跨存储分区复制会将新对象或更新后的对象从源 Cloud Storage 存储分区复制到目标 Cloud Storage 存储分区。新的跨存储分区复制作业不会复制源存储分区中的现有对象。

JSON 表示法
{
  "objectConditions": {
    object (ObjectConditions)
  },
  "transferOptions": {
    object (TransferOptions)
  },

  // Union field data_source can be only one of the following:
  "gcsDataSource": {
    object (GcsData)
  }
  // End of list of possible types for union field data_source.

  // Union field data_sink can be only one of the following:
  "gcsDataSink": {
    object (GcsData)
  }
  // End of list of possible types for union field data_sink.
}
字段
objectConditions

object (ObjectConditions)

用于确定要转移的对象的对象条件。对于复制作业,仅支持 includePrefixesexcludePrefixes

transferOptions

object (TransferOptions)

指定要在复制期间应用的元数据选项。不支持删除选项。如果指定了删除选项,请求将失败并显示 INVALID_ARGUMENT 错误。

联合字段 data_source。要复制的数据源。data_source 只能是下列其中一项:
gcsDataSource

object (GcsData)

要从中复制对象的 Cloud Storage 存储分区。

联合字段 data_sink。复制对象的目标位置。data_sink 只能是下列其中一项:
gcsDataSink

object (GcsData)

要将对象复制到的 Cloud Storage 存储分区。

时间表

转移可以安排为周期性运行,也可以安排为仅运行一次。

JSON 表示法
{
  "scheduleStartDate": {
    object (Date)
  },
  "scheduleEndDate": {
    object (Date)
  },
  "startTimeOfDay": {
    object (TimeOfDay)
  },
  "endTimeOfDay": {
    object (TimeOfDay)
  },
  "repeatInterval": string
}
字段
scheduleStartDate

object (Date)

必需。转移的开始日期。日期边界是相对于世界协调时间 (UTC) 确定的。如果 scheduleStartDatestartTimeOfDay 相对于作业的创建时间而言是过去时间,则转移将在您安排转移请求的第二天开始。

注意:如果在世界协调时间 (UTC) 零点或接近零点时启动作业,作业可能会比预期晚开始。例如,如果您在 6 月 1 日零点前 1 毫秒发送出站请求,而 Storage Transfer Service 服务器在 6 月 2 日收到该请求,则它会创建一个 TransferJob,并将 scheduleStartDate 设置为 6 月 2 日,将 startTimeOfDay 设置为零点 (UTC)。第一个预定的 TransferOperation 将于 6 月 3 日世界协调时间 (UTC) 零点执行。

scheduleEndDate

object (Date)

转移的最后一天。日期边界是相对于世界协调时间 (UTC) 确定的。作业会按照以下准则每 24 小时运行一次:

  • 如果 scheduleEndDatescheduleStartDate 相同且相对于 UTC 在未来,则只会执行一次转移。
  • 如果 scheduleEndDate 晚于 scheduleStartDate,并且 scheduleEndDate 相对于 UTC 是未来时间,则作业每天在 startTimeOfDayscheduleEndDate 之间运行。
startTimeOfDay

object (TimeOfDay)

安排的传输作业的运行时间(世界协调时间 [UTC])。转移可能晚于此时间开始。

如果未指定 startTimeOfDay

  • 一次性转移会立即运行。
  • 周期性转账会立即运行,并在世界协调时间 (UTC) 每天零点运行 scheduleEndDate 次。

如果指定了 startTimeOfDay

  • 一次性转移会在指定时间运行。
  • 周期性转移每天在指定时间运行,直到 scheduleEndDate
endTimeOfDay

object (TimeOfDay)

不再安排进一步传输操作的时间(以世界协调时间 [UTC] 表示)。endTimeOfDayscheduleEndDate 结合使用时,用于指定开始新的转移操作的结束日期和时间。此字段必须大于或等于与 scheduleStartDatestartTimeOfDay 组合对应的时间戳,并且遵循以下规则:

  • 如果未设置 endTimeOfDay 且已设置 scheduleEndDate,则 endTimeOfDay 会使用默认值 23:59:59

  • 如果设置了 endTimeOfDay 但未设置 scheduleEndDate,则返回 INVALID_ARGUMENT

repeatInterval

string (Duration format)

每个已安排的 TransferOperation 的开始时间之间的间隔。如果未指定,则默认值为 24 小时。此值不得低于 1 小时。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

日期

表示整个或部分日历日期(例如生日)。一天中的时间和时区要么在别处指定,要么不重要。日期相对于公历。可以表示以下任一情况:

  • 包含非零年份、月份和天值的完整日期。
  • 月份和天,年份值为零(例如周年纪念日)。
  • 单独的年份,月份和天值为零。
  • 年份和月份,天值为零(例如,信用卡到期日期)。

相关类型:

JSON 表示法
{
  "year": integer,
  "month": integer,
  "day": integer
}
字段
year

integer

日期中的年份。必须介于 1 到 9999 之间,或为 0(即指定不含年份的日期)。

month

integer

一年中的第几个月。必须介于 1 到 12 之间,或为 0(即只指定年份,不指定月份和天值)。

day

integer

一个月中的第几天。必须介于 1 到 31 之间并且对年份和月份有效,或为 0(即天不重要,指定单独的年份或者年份和月份)。

TimeOfDay

表示一天中的某个时间。日期和时区不重要,或在别处指定。API 可以选择允许闰秒。相关类型为 google.type.Dategoogle.protobuf.Timestamp

JSON 表示法
{
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer
}
字段
hours

integer

一天中的时段(采用 24 小时制)。必须大于或等于 0,通常必须小于或等于 23。对于业务结束时间等场景,API 可以选择允许“24:00:00”一值。

minutes

integer

一小时中的分钟数。必须大于或等于 0,小于或等于 59。

seconds

integer

一分钟中的秒数。必须大于或等于 0,通常必须小于或等于 59。如果 API 允许闰秒,则 API 可以允许 60 一值。

nanos

integer

秒数的小数部分(以纳秒为单位)。必须大于或等于 0,且小于或等于 999,999,999。

EventStream

指定事件驱动型转移选项。事件驱动型传输会监听事件流,以传输更新后的文件。

JSON 表示法
{
  "name": string,
  "eventStreamStartTime": string,
  "eventStreamExpirationTime": string
}
字段
name

string

必需。指定资源的唯一名称,例如格式为“arn:aws:sqs:region:account_id:queue_name”的 AWS SQS ARN,或格式为“projects/{project}/subscriptions/{sub}”的 Pub/Sub 订阅资源名称。

eventStreamStartTime

string (Timestamp format)

指定 Storage Transfer Service 开始监听此数据流中事件的日期和时间。如果未指定开始时间或开始时间已过,存储空间传输服务会立即开始监听。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

eventStreamExpirationTime

string (Timestamp format)

指定 Storage Transfer Service 停止监听此数据流中的事件的日期和时间。在此时间之后,所有正在进行的转移都会完成,但系统不会发起任何新的转移。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

状态

转移作业的状态。

枚举
STATUS_UNSPECIFIED 零是无效值。
ENABLED 系统会根据时间表执行新的转移。
DISABLED 不会安排新的转移。
DELETED 这是软删除状态。将转移作业设为此状态后,该作业和所有转移执行作业都将接受垃圾回收。转移作业的状态设为 DELETED 后,30 天后便会符合垃圾回收条件。

方法

create

创建定期运行的转移作业。

delete

删除转移作业。

get

获取转移作业。

list

列出转移作业。

patch

更新转移作业。

run

为指定的转移作业启动新操作。