Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
G
goyo-syncable-container
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 27
    • Issues 27
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 7
    • Merge Requests 7
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • kuraemon-goyo
  • packages
  • goyo-syncable-container
  • Merge Requests
  • !1

Closed
Opened Jul 11, 2024 by 工藤 思由@s_kudoDeveloper3 of 3 tasks completed3/3 tasks
  • Report abuse
Report abuse

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b "feature/createPackerTest" "origin/feature/createPackerTest"

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout "master"
git merge --no-ff "feature/createPackerTest"

Step 4. Push the result of the merge to GitLab

git push origin "master"

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

Draft: PackerTestを作成

  • Overview 1
  • Commits 8
  • Changes 3

PackerTestを作成

S3にPutするファイル数を削減するために、複数のファイルを一つに固めてPutするためのレイヤの仮実装とテストを作成

実装内容

test/packer.test.ts

処理の流れ

ローカルディレクトリ + ファイル差分`Array<FileChange>`
↓ 変換
アップロード用のファイル群 + ファイル情報`Array<UploadControlRecord>`
↓ アップロード
S3ファイル群 + スナップショット`Array<SyncableEntityFileSetSnapshot>`
↓ 複数のスナップショットを合成
S3ファイル群 + スナップショット`Array<SyncableEntityFileSetSnapshot>`
↓ 差分を展開
ローカルディレクトリ

最初のローカルディレクトリと最後のローカルディレクトリが一致することが要件

test/directoryUtil.test.ts

テストで使うためのディレクトリ操作Util

  • ディレクトリが一致していることを検証
  • jsのオブジェクトからテスト用の簡易ファイル群を作成
test/filePacker.test.ts

class FilePacker 複数ファイルをstreamを介して一つのファイルにまとめる class FileUnpacker FilPackerでまとめたファイルから必要なファイルを展開する

実装進捗

  • ファイル結合せずにアップロードとダウンロードができる
  • ファイル結合に対応
  • ファイル圧縮に対応
Edited Oct 01, 2024 by 工藤 思由
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
Reference: kuraemon-goyo/packages/goyo-syncable-container!1
Source branch: feature/createPackerTest