Skip to content

Commit 6895c74

Browse files
authored
Merge pull request #38 from InfuseAI/docs/20220412
Update document
2 parents 0475d74 + 0f17b3f commit 6895c74

17 files changed

Lines changed: 359 additions & 47 deletions

File tree

README.md

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,19 @@
11
# ArtiVC
22

3-
[ArtiVC](https://artivc.io/) (**Arti**facts **V**ersion **C**ontrol) is a version control system for large files.
4-
5-
To store and share large files, we may use NFS or object storage (e.g. s3, MinIO). However, if we would like to do versioning on top of them, it is not a trivial thing. ArtiVC is a CLI tool to enable you to version files on your storage without pain. You don't need to install any additional server or gateway and we turn your storage into the versioned repository.
3+
[ArtiVC](https://artivc.io/) (**Arti**facts **V**ersion **C**ontrol) is a handy command-line tool for data versioning on cloud storage. With only one command, it helps you neatly snapshot your data and Switch data between versions. Even better, it seamlessly integrates your existing cloud environment. ArtiVC supports three major cloud providers (AWS S3, Google Cloud Storage, Azure Blob Storage) and the remote filesystem using SSH.
64

75
[![asciicast](https://asciinema.org/a/6JEhzpJ5QMiSkiC74s5CyT257.svg)](https://asciinema.org/a/6JEhzpJ5QMiSkiC74s5CyT257?autoplay=1)
86

97
Try it out from the [Getting Started](https://artivc.io/usage/getting-started/) guide
108

119
# Features
1210

13-
- **Use your own storage**: If you store data in NFS or S3, just use the storage you already use.
14-
- **No additional server required**: ArtiVC is a CLI tool. No server or gateway is required to install or operate.
15-
- **Multiple backend support**: Currently, we support local, NFS (by local repo), and s3. And more in the future
16-
17-
- **Reproducible**: A commit is stored in a single file and cannot be changed. There is no way to add/remove/modify a single file in a commit.
18-
- **Expose your data publicly**: Expose your repository with a public HTTP endpoint, then you can download your data in this way
19-
```
20-
avc get -o /tmp/dataset https://mybucket.s3.ap-northeast-1.amazonaws.com/path/to/my/data@v0.1.0
21-
```
22-
- **Smart storage and transfer**: For the same content of files, there is only one instance stored in the artifact repository. If a file has been uploaded by other commits, no upload is required because we know the file is already there in the repository. Under the hood, we use [content-addressable storage](https://en.wikipedia.org/wiki/Content-addressable_storage) to put the objects.
23-
11+
- **Data Versioning**: Version your data like versioning code. ArtiVC supports commit history, commit message, and version tag. You can diff two commits, and pull data from the specific version.
12+
- **Use your own storage**: We are used to putting large files in NFS or S3. To use ArtiVC, you can keep putting your files on the same storage without changes.
13+
- **No additional server is required**: ArtiVC is a CLI tool. No server or gateway is required to install and operate.
14+
- **Multiple backends support**: ArtiVC natively supports local filesystem, remote filesystem (by SSH), AWS S3, Google Cloud Storage, and Azure Blob Storage as backend. And 40+ backends are supported through [Rclone](https://artivc.io/backends/rclone/) integration. [Learn more](https://artivc.io/backends/)
15+
- **Painless Configuration**: No one like to configure. So we leverage the original configuration as much as possible. Use `.ssh/config` for ssh access, and use `aws configure`, `gcloud auth application-default login`, `az login` for the cloud platforms.
16+
- **Efficient storage and transfer**: The file structure of the repository is stored and transferred efficiently by [design](https://artivc.io/design/how-it-works/). It prevents storing duplicated content and minimum the number of files to upload when pushing a new version. [Learn more](https://artivc.io/design/benchmark/)
2417

2518
# Documentation
2619

docs/content/en/_index.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ geekdocAnchor: false
77
---
88

99
{{< columns >}}
10-
### ArtiVC (Artifact Version Control) is a version control system for large files.
1110

12-
13-
**rsync** is an ssh-based tool that provides fast incremental file transfer.<br>
14-
**Rclone** is a rsync-like tool for cloud storage.<br>
15-
**ArtiVC** is like Git for files versioning and like Rclone for cloud storage.
11+
<p style="text-align: left">
12+
<b>ArtiVC (Artifact Version Control) is a handy command-line tool for data versioning on cloud storage.</b> With only one command, it helps you neatly snapshot your data and Switch data between versions. Even better, it seamlessly integrates your existing cloud environment. ArtiVC supports three major cloud providers (AWS S3, Google Cloud Storage, Azure Blob Storage) and the remote filesystem using SSH.
13+
</p>
1614

1715
<--->
1816
[![asciicast](https://asciinema.org/a/6JEhzpJ5QMiSkiC74s5CyT257.svg)](https://asciinema.org/a/6JEhzpJ5QMiSkiC74s5CyT257?autoplay=1)
@@ -25,17 +23,17 @@ geekdocAnchor: false
2523
{{< columns >}}
2624
### Data Versioning
2725

28-
Version your data like versioning code. ArtiVC supports commmit history, commit message, version tag. You can diff two commits, pull data from speciifc version.
26+
Version your data like versioning code. ArtiVC supports commit history, commit message, and version tag. You can diff two commits, and pull data from the specific version.
2927

3028
<--->
3129

3230
### Use your own storage
3331

34-
We are used to putting large files in NFS or S3. To use ArtiVC, you can keep put your files on the same storage without changes.
32+
We are used to putting large files in NFS or S3. To use ArtiVC, you can keep putting your files on the same storage without changes.
3533

3634
<--->
3735

38-
### No additional server required
36+
### No additional server is required
3937

4038
ArtiVC is a CLI tool. No server or gateway is required to install and operate.
4139

@@ -45,19 +43,19 @@ ArtiVC is a CLI tool. No server or gateway is required to install and operate.
4543

4644
### Multiple backends support
4745

48-
ArtiVC natively supports local filesystem, remote filesystem (by SSH), AWS S3, Google Cloud Storage, Azure Blob Storage as backend. And 40+ backends are supported through [Rclone](backends/rclone/) integration. [Learn more](backends/)
46+
ArtiVC natively supports local filesystem, remote filesystem (by SSH), AWS S3, Google Cloud Storage, and Azure Blob Storage as backend. And 40+ backends are supported through [Rclone](backends/rclone/) integration. [Learn more](backends/)
4947

5048
<--->
5149

5250
### Painless Configuration
5351

54-
No one like to configure. So we leverage the original configuraion as much as possible. Use `.ssh/config` for ssh access, and use `aws configure`, `gcloud auth application-default login`, `az login` for the cloud platforms.
52+
No one like to configure. So we leverage the original configuration as much as possible. Use `.ssh/config` for ssh access, and use `aws configure`, `gcloud auth application-default login`, `az login` for the cloud platforms.
5553

5654
<--->
5755

5856
### Efficient storage and transfer
5957

60-
The file structure of repository is storage and transfer effiecntly by [design](design/how-it-works/). It prevents from storing duplicated content and minimum the number of files to upload when pushing a new version. [Learn more](design/benchmark/)
58+
The file structure of the repository is stored and transferred efficiently by [design](design/how-it-works/). It prevents storing duplicated content and minimum the number of files to upload when pushing a new version. [Learn more](design/benchmark/)
6159

6260

6361
{{< /columns >}}

docs/content/en/backends/azureblob.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ title: Azure Blob Storage
33
weight: 13
44
---
55

6+
{{< toc >}}
7+
68
Use [Azure Blob Storage](https://azure.microsoft.com/services/storage/blobs/) as the repository backend.
79

810
## Configuration
@@ -22,6 +24,8 @@ The logged-in account requires **Storage Blob Data Contributor** role to the sto
2224
For more information, please see https://docs.microsoft.com/azure/storage/blobs/assign-azure-role-data-access
2325
{{< /hint >}}
2426

27+
The azure blob storage backend authenticates by a default procedure defined by [Azure SDK for Go](https://docs.microsoft.com/azure/developer/go/azure-sdk-authentication)
28+
2529
### Use Azure CLI to login
2630

2731
This backend supports to use [Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli) to configure the login account. It will open the browser and start the login process.

docs/content/en/backends/gcs.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ title: Google Cloud Storage
33
weight: 12
44
---
55

6+
{{< toc >}}
7+
68
Use [Google Cloud Storage (GCS)](https://cloud.google.com/storage) as the repository backend.
79

810
Note that Google Cloud Storage is not [Google Drive](https://www.google.com.tw/drive/). They are different google product.
@@ -30,7 +32,7 @@ Before using the backend, you have to configure the service account credential.
3032
1. Use the service account in the GCP resources (e.g. GCE, GKE). It is recommended way if the `ArtiVC` is run in the GCP environment. Please see [default service accounts](https://cloud.google.com/iam/docs/service-accounts#default) document
3133
3234
33-
35+
The GCS backend finds credentials by a default procedure defined by [Google Cloud](https://cloud.google.com/docs/authentication/production)
3436
3537
3638
@@ -46,3 +48,10 @@ Clone a repository
4648
avc clone gs://mybucket/path/to/mydataset
4749
cd mydataset/
4850
```
51+
52+
53+
## Environment Variables
54+
55+
| Name | Description | Default value |
56+
| --- | --- | --- |
57+
| `GOOGLE_APPLICATION_CREDENTIALS` | The location of service account keys in JSON | |

docs/content/en/backends/s3.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ title: AWS S3
33
weight: 11
44
---
55

6+
{{< toc >}}
7+
68
Use the S3 as the repository backend.
79

810
## Features
@@ -12,7 +14,17 @@ Use the S3 as the repository backend.
1214

1315
## Configuration
1416

15-
Prepare the `~/.aws/credentials` to access the s3 backend. Please see the [AWS documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
17+
1. Install the [AWS CLI](https://aws.amazon.com/cli/)
18+
2. Configure the AWS CLI. Please see the [AWS documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
19+
```
20+
aws configure
21+
```
22+
3. Check current config
23+
```
24+
aws configure list
25+
```
26+
27+
The S3 backend loads configuration by a default procedure of [AWS SDK for Go](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials)
1628

1729
## Usage
1830

@@ -26,3 +38,12 @@ Clone a repository
2638
avc clone s3://mybucket/path/to/mydataset
2739
cd mydataset/
2840
```
41+
42+
## Environment Variables
43+
44+
| Name | Description | Default value |
45+
| --- | --- | --- |
46+
| `AWS_ACCESS_KEY_ID` | The access key | |
47+
| `AWS_SECRET_ACCESS_KEY` | The access secret key | |
48+
| `AWS_PROFILE` | The profile to use in the credential file | `default` |
49+
| `AWS_REGION` | The region to use | the region from profile |

docs/content/en/backends/ssh.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ title: Remote Filesystem (SSH)
33
weight: 2
44
---
55

6+
{{< toc >}}
7+
68
Use remote filesystem through SSH as the repository backend.
79

810
## Features

docs/content/en/design/images/benchmark1.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/content/en/design/images/benchmark2.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/content/en/design/images/benchmark3.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/content/en/usage/dryrun.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: Dry Run
3+
weight: 11
4+
---
5+
6+
Pushing and pulling data is time-consuming. And need to be double-checked before transferring. Dry-run is the feature that allows listing the changeset before sending.
7+
8+
9+
## Push
10+
11+
1. Dry run before pushing
12+
```shell
13+
avc push --dry-run
14+
```
15+
16+
1. Do the actual push
17+
```
18+
avc push
19+
```
20+
21+
## Pull
22+
23+
1. Dry run before pulling
24+
```shell
25+
avc pull -dry-run
26+
# or check in delete mode
27+
# avc pull --delete -dry-run
28+
```
29+
30+
1. Do the actual pull
31+
32+
```shell
33+
avc pull
34+
# avc pull --delete
35+
```
36+

0 commit comments

Comments
 (0)