Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,23 @@ open class MarketAtomTask : ITask() {
val fileCacheKey = "${atomData.atomCode}-${atomData.version}-$atomExecuteFileName"
bkDiskLruFileCache.get(fileCacheKey, atomExecuteFile)
try {
// 新增:插件缓存文件本地缓存探测功能
if (atomExecuteFile.exists() && atomExecuteFile.length() > 0) {
// 缓存文件存在,检查完整性
val isValid = verifyCachedFile(atomExecuteFile, atomData.shaContent)
if (!isValid) {
// 文件损坏,删除并从缓存中移除
logger.warn(
"Cached atom file is corrupted! " +
"atomCode=${atomData.atomCode}, version=${atomData.version}, " +
"file=${atomExecuteFile.absolutePath}"
)
atomExecuteFile.delete()
bkDiskLruFileCache.remove(fileCacheKey)
logger.info("Corrupted cache file deleted, will re-download from repo")
}
}

if (!atomExecuteFile.exists() || atomExecuteFile.length() < 1) {
logger.info("local file[$atomExecuteFileName] is not exist,start downloading from the repo!")
val cacheFlag = atomData.atomStatus !in setOf(
Expand Down Expand Up @@ -1133,6 +1150,25 @@ open class MarketAtomTask : ITask() {
return context
}

private fun verifyCachedFile(file: File, expectedSha1: String?): Boolean {
if (expectedSha1.isNullOrBlank()) {
// 没有SHA1信息,无法校验,认为有效
return true
}
return try {
val fileSha1 = file.inputStream().use { ShaUtils.sha1InputStream(it) }
val isValid = fileSha1 == expectedSha1
if (!isValid) {
logger.warn("SHA1 mismatch! expected=$expectedSha1, actual=$fileSha1")
}
isValid
} catch (e: Exception) {
// 校验过程出错(如文件读取失败),认为文件损坏
logger.warn("Failed to verify cached file SHA1", e)
false
}
}

companion object {
private const val DIR_ENV = "bk_data_dir"
private const val INPUT_ENV = "bk_data_input"
Expand Down
52 changes: 26 additions & 26 deletions support-files/i18n/process/message_ja_JP.properties
Original file line number Diff line number Diff line change
Expand Up @@ -888,33 +888,33 @@ bkCurrentSubPipelineCircularDependencyErrorMessage=現在のパイプライン
bkSubPipelineCircularDependencyErrorMessage=子パイプライン[<a target="_blank" href="{0}">{1}</a>]が現在のパイプラインを呼び出し、循環依存を形成しました
bkOtherSubPipelineCircularDependencyErrorMessage=子パイプライン[<a target="_blank" href="{0}">{1}</a>]が[<a target="_blank" href="{2}">{3}</a>]パイプラインを呼び出し、循環依存を形成しました

bkGitPushEventDesc=[{0}] コミット [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 推送
bkGitPushCreateEventDesc=Branch [<a href="{1}" target="_blank">{0}</a>] 由 <span class="trigger-user">{3}</span> 创建
bkGitPushDeleteEventDesc=Branch [<a href="{1}" target="_blank">{0}</a>] 由 <span class="trigger-user">{3}</span> 删除
bkGitIssueOpenedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 创建
bkGitIssueUpdatedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 更新
bkGitIssueClosedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 关闭
bkGitIssueReopenedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 重新打开
bkGitPrCreatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 创建
bkGitPrUpdatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 编辑
bkGitPrClosedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 关闭
bkGitPrReopenedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 重新打开
bkGitPrPushUpdatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 在源分支提交代码触发
bkGitPrMergedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 合并
bkGitTagPushEventDesc=[{0}] Tag作成 [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 推送
bkGitTagDeleteEventDesc=[{0}] Tag [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 删除
bkGitNoteEventDesc=コメント [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 发表
bkGitReviewCreatedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 创建
bkGitReviewApprovedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 评审通过
bkGitReviewApprovingEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 评审中
bkGitReviewClosedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 已关闭
bkGitReviewChangeDeniedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 被 <span class="trigger-user">{2}</span> 拒绝
bkGitReviewChangeRequiredEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 要求修改
bkGitPushEventDesc=[{0}] コミット [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 押す
bkGitPushCreateEventDesc=Branch [<a href="{1}" target="_blank">{0}</a>] 由 <span class="trigger-user">{3}</span> 作成する
bkGitPushDeleteEventDesc=Branch [<a href="{1}" target="_blank">{0}</a>] 由 <span class="trigger-user">{3}</span> 消去
bkGitIssueOpenedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 作成する
bkGitIssueUpdatedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 更新する
bkGitIssueClosedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 閉鎖
bkGitIssueReopenedEventDesc=課題 [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 再開する
bkGitPrCreatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 作成する
bkGitPrUpdatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 編集
bkGitPrClosedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 閉鎖
bkGitPrReopenedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> 再開する
bkGitPrPushUpdatedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> ソースブランチにコードをコミットするときにトリガーされます
bkGitPrMergedEventDesc=Mergeリクエスト [<a href="{0}" target="_blank">!{1}</a>] 由 <span class="trigger-user">{2}</span> マージ
bkGitTagPushEventDesc=[{0}] Tag作成 [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 押す
bkGitTagDeleteEventDesc=[{0}] Tag [<a href="{1}" target="_blank">{2}</a>] 由 <span class="trigger-user">{3}</span> 消去
bkGitNoteEventDesc=コメント [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 公開
bkGitReviewCreatedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 作成する
bkGitReviewApprovedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> する製
bkGitReviewApprovingEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 検討中
bkGitReviewClosedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 閉店
bkGitReviewChangeDeniedEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 被 <span class="trigger-user">{2}</span> 拒否する
bkGitReviewChangeRequiredEventDesc=コード審査 [<a href="{0}" target="_blank">{1}</a>] 由 <span class="trigger-user">{2}</span> 変更のリクエスト

bkYamlPipelineCreateSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]创建成功
bkYamlPipelineUpdateSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]更新成功
bkYamlPipelineDeleteVersionSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]删除版本成功
bkYamlPipelineDeleteSuccess=[{0}|{1}]删除成功
bkYamlPipelineCreateSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]正常に作成されました
bkYamlPipelineUpdateSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]更新に成功しました
bkYamlPipelineDeleteVersionSuccess=[<a href="{0}" target="_blank">{1}</a>|{2}]バージョンを正常に削除しました
bkYamlPipelineDeleteSuccess=[{0}|{1}]正常に削除されました
bkYamlPipelineCreateFailed=パイプラインの作成に失敗しました
bkYamlPipelineUpdateFailed=パイプライン[<a href="{0}" target="_blank">{1}</a>]の更新に失敗しました
bkYamlPipelineDependencyUpgradeFailed=パイプライン[<a href="{0}" target="_blank">{1}</a>]の依存関係の更新に失敗しました
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,16 @@ INSERT IGNORE INTO `T_LEAF_ALLOC`(`BIZ_TAG`, `MAX_ID`, `STEP`, `DESCRIPTION`) VA

REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76hgu9cn4047bfd4e6ddd0aaada', 'STORE', 'zh_CN', 'reason.e20897c838564d61b5af1a8c9c1d26d2.content', '只是试用下', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('13312a05cxt1468088bdb71637sc14ds', 'STORE', 'en_US', 'reason.e20897c838564d61b5af1a8c9c1d26d2.content', 'Just trying it out.', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76hgu9cn4047bfd4e6dfd0caada', 'STORE', 'zh_CN', 'reason.e20897c838564d61b5af1a8c9c1d26d2.content', '試してみてください', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76hg89cn4047bfd4e6ddd0aaada', 'STORE', 'zh_CN', 'reason.8ac9727ad27b407784bea8dae06e91f0.content', '没有我想要的功能', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('13312a05cxt14680js6db71637sc14dh', 'STORE', 'en_US', 'reason.8ac9727ad27b407784bea8dae06e91f0.content', 'The desired feature is not available.', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76hg89cn4047bfd4e6ddd2aaada', 'STORE', 'zh_CN', 'reason.8ac9727ad27b407784bea8dae06e91f0.content', '欲しい機能がない', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289cn4047bfd4e6ddd0aaadag', 'STORE', 'zh_CN', 'reason.712459a9ea0b4d1496fa5a848ff0af4f.content', '其它', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('1he12a05cxt1468088bdb71637sc14ds', 'STORE', 'en_US', 'reason.712459a9ea0b4d1496fa5a848ff0af4f.content', 'Other', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289cn4047bfd4f6ddd0aaadag', 'STORE', 'zh_CN', 'reason.712459a9ea0b4d1496fa5a848ff0af4f.content', '他の', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289c34047bfd4e6ddd0aaadab', 'STORE', 'zh_CN', 'reason.6844b152fe474df7ab68640178193786.content', '体验太差不好用', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('13312a05cd714680886db71637sc14dn', 'STORE', 'en_US', 'reason.6844b152fe474df7ab68640178193786.content', 'Poor user experience, not user-friendly.', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289c34047bfd5e6ddd0aaadab', 'STORE', 'zh_CN', 'reason.6844b152fe474df7ab68640178193786.content', 'ユーザーエクスペリエンスはひどく、使いにくいです', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289c34047bfd4e6ddd01eadag', 'STORE', 'zh_CN', 'reason.2c41f2d2922f443fa0b76c8a33f75585.content', '太多BUG,经常失败', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('13312a05cxt1468088bdb71637sc14ds', 'STORE', 'en_US', 'reason.2c41f2d2922f443fa0b76c8a33f75585.content', 'Too many bugs, often fail.', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');
REPLACE INTO `T_I18N_MESSAGE` (`ID`, `MODULE_CODE`, `LANGUAGE`, `KEY`, `VALUE`, `CREATOR`, `MODIFIER`, `UPDATE_TIME`, `CREATE_TIME`) VALUES('12cfe76289c34047bfd4e6dcd01eadag', 'STORE', 'zh_CN', 'reason.2c41f2d2922f443fa0b76c8a33f75585.content', 'バグが多すぎて、頻繁に障害が発生する', 'system', 'system', '2023-06-26 10:59:20.561', '2023-06-26 10:59:47');