minor spelling and grammar fixes (#1318)

This commit is contained in:
cristihcd
2021-09-29 01:19:02 +03:00
committed by GitHub
parent d56b93587e
commit d9c1bd0758
30 changed files with 53 additions and 53 deletions

View File

@@ -27,7 +27,7 @@ type progressFlags struct {
func (p *progressFlags) setup(svc appServices, app *kingpin.Application) {
app.Flag("progress", "Enable progress bar").Hidden().Default("true").BoolVar(&p.enableProgress)
app.Flag("progress-update-interval", "How ofter to update progress information").Hidden().Default("300ms").DurationVar(&p.progressUpdateInterval)
app.Flag("progress-update-interval", "How often to update progress information").Hidden().Default("300ms").DurationVar(&p.progressUpdateInterval)
p.out.setup(svc)
}

View File

@@ -30,7 +30,7 @@ func (c *commandBenchmarkSplitters) setup(svc appServices, parent commandParent)
cmd.Flag("rand-seed", "Random seed").Default("42").Int64Var(&c.randSeed)
cmd.Flag("data-size", "Size of a data to split").Default("32MB").BytesVar(&c.blockSize)
cmd.Flag("block-count", "Number of data blocks to split").Default("16").IntVar(&c.blockCount)
cmd.Flag("print-options", "Print out fastest dynamic splitter option").BoolVar(&c.printOption)
cmd.Flag("print-options", "Print out the fastest dynamic splitter option").BoolVar(&c.printOption)
cmd.Action(svc.noRepositoryAction(c.run))

View File

@@ -22,7 +22,7 @@ type commandIndexInspect struct {
}
func (c *commandIndexInspect) setup(svc appServices, parent commandParent) {
cmd := parent.Command("inspect", "Inpect index blob")
cmd := parent.Command("inspect", "Inspect index blob")
cmd.Flag("all", "Inspect all index blobs in the repository, including inactive").BoolVar(&c.all)
cmd.Flag("active", "Inspect all active index blobs").BoolVar(&c.active)
cmd.Flag("content-id", "Inspect all active index blobs").StringsVar(&c.contentIDs)

View File

@@ -33,7 +33,7 @@ type logSelectionCriteria struct {
func (c *logSelectionCriteria) setup(cmd *kingpin.CmdClause) {
cmd.Flag("all", "Show all logs").BoolVar(&c.all)
cmd.Flag("latest", "Include last N logs").Short('n').IntVar(&c.latest)
cmd.Flag("younger-than", "Include logs yonger than X (e.g. '1h')").DurationVar(&c.youngerThan)
cmd.Flag("younger-than", "Include logs younger than X (e.g. '1h')").DurationVar(&c.youngerThan)
cmd.Flag("older-than", "Include logs older than X (e.g. '1h')").DurationVar(&c.olderThan)
}

View File

@@ -54,7 +54,7 @@ func (c *commandLogsShow) run(ctx context.Context, rep repo.DirectRepository) er
// by default show latest one
if !c.crit.any() {
sessions = sessions[len(sessions)-1:]
log(ctx).Infof("Showing latest log (%v)", formatTimestamp(sessions[0].startTime))
log(ctx).Infof("Showing the latest log (%v)", formatTimestamp(sessions[0].startTime))
}
var data gather.WriteBuffer

View File

@@ -31,7 +31,7 @@ func (c *policyActionFlags) setup(cmd *kingpin.CmdClause) {
cmd.Flag("after-folder-action", "Path to after-folder action command ('none' to remove)").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetAfterFolderActionCommand)
cmd.Flag("before-snapshot-root-action", "Path to before-snapshot-root action command ('none' to remove or 'inherit')").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetBeforeSnapshotRootActionCommand)
cmd.Flag("after-snapshot-root-action", "Path to after-snapshot-root action command ('none' to remove or 'inherit')").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetAfterSnapshotRootActionCommand)
cmd.Flag("action-command-timeout", "Max time allowed for a action to run in seconds").Default("5m").DurationVar(&c.policySetActionCommandTimeout)
cmd.Flag("action-command-timeout", "Max time allowed for an action to run in seconds").Default("5m").DurationVar(&c.policySetActionCommandTimeout)
cmd.Flag("action-command-mode", "Action command mode").Default("essential").EnumVar(&c.policySetActionCommandMode, "essential", "optional", "async")
cmd.Flag("persist-action-script", "Persist action script").BoolVar(&c.policySetPersistActionScript)
}

View File

@@ -39,7 +39,7 @@ func (c *policyFilesFlags) setup(cmd *kingpin.CmdClause) {
cmd.Flag("clear-dot-ignore", "Clear list of paths in the dot-ignore list").BoolVar(&c.policySetClearDotIgnore)
cmd.Flag("max-file-size", "Exclude files above given size").PlaceHolder("N").StringVar(&c.policySetMaxFileSize)
// Ignore other mounted fileystems.
// Ignore other mounted filesystems.
cmd.Flag("one-file-system", "Stay in parent filesystem when finding files ('true', 'false', 'inherit')").EnumVar(&c.policyOneFileSystem, booleanEnumValues...)
cmd.Flag("ignore-cache-dirs", "Ignore cache directories ('true', 'false', 'inherit')").EnumVar(&c.policyIgnoreCacheDirs, booleanEnumValues...)

View File

@@ -35,7 +35,7 @@ func (c *commandRepositorySetParameters) setup(svc appServices, parent commandPa
cmd.Flag("max-pack-size-mb", "Set max pack file size").PlaceHolder("MB").IntVar(&c.maxPackSizeMB)
cmd.Flag("index-version", "Set version of index format used for writing").IntVar(&c.indexFormatVersion)
cmd.Flag("upgrade", "Uprade repository to the latest stable format").BoolVar(&c.upgradeRepositoryFormat)
cmd.Flag("upgrade", "Upgrade repository to the latest stable format").BoolVar(&c.upgradeRepositoryFormat)
cmd.Flag("epoch-refresh-frequency", "Epoch refresh frequency").DurationVar(&c.epochRefreshFrequency)
cmd.Flag("epoch-min-duration", "Minimal duration of a single epoch").DurationVar(&c.epochMinDuration)

View File

@@ -38,7 +38,7 @@ type commandRepositorySyncTo struct {
}
func (c *commandRepositorySyncTo) setup(svc advancedAppServices, parent commandParent) {
cmd := parent.Command("sync-to", "Synchronizes contents of this repository to another location")
cmd := parent.Command("sync-to", "Synchronizes the contents of this repository to another location")
cmd.Flag("update", "Whether to update blobs present in destination and source if the source is newer.").Default("true").BoolVar(&c.repositorySyncUpdate)
cmd.Flag("delete", "Whether to delete blobs present in destination but not source.").BoolVar(&c.repositorySyncDelete)
cmd.Flag("dry-run", "Do not perform copying.").Short('n').BoolVar(&c.repositorySyncDryRun)

View File

@@ -17,7 +17,7 @@ type commandShow struct {
}
func (c *commandShow) setup(svc appServices, parent commandParent) {
cmd := parent.Command("show", "Displays contents of a repository object.").Alias("cat")
cmd := parent.Command("show", "Displays the contents of a repository object.").Alias("cat")
cmd.Arg("object-path", "Path").Required().StringVar(&c.path)
cmd.Action(svc.repositoryReaderAction(c.run))

View File

@@ -49,7 +49,7 @@ func (c *commandSnapshotList) setup(svc appServices, parent commandParent) {
cmd.Flag("mtime", "Include file mod time").BoolVar(&c.snapshotListShowModTime)
cmd.Flag("owner", "Include owner").BoolVar(&c.shapshotListShowOwner)
cmd.Flag("show-identical", "Show identical snapshots").Short('l').BoolVar(&c.snapshotListShowIdentical)
cmd.Flag("all", "Show all shapshots (not just current username/host)").Short('a').BoolVar(&c.snapshotListShowAll)
cmd.Flag("all", "Show all snapshots (not just current username/host)").Short('a').BoolVar(&c.snapshotListShowAll)
cmd.Flag("max-results", "Maximum number of entries per source.").Short('n').IntVar(&c.maxResultsPerPath)
cmd.Flag("tags", "Tag filters to apply on the list items. Must be provided in the <key>:<value> format.").StringsVar(&c.snapshotListTags)
c.jo.setup(svc, cmd)

View File

@@ -30,7 +30,7 @@ type storageProvider struct {
{"b2", "a B2 bucket", func() storageFlags { return &storageB2Flags{} }},
{"filesystem", "a filesystem", func() storageFlags { return &storageFilesystemFlags{} }},
{"gcs", "a Google Cloud Storage bucket", func() storageFlags { return &storageGCSFlags{} }},
{"rclone", "an rclone-based provided", func() storageFlags { return &storageRcloneFlags{} }},
{"rclone", "a rclone-based provided", func() storageFlags { return &storageRcloneFlags{} }},
{"s3", "an S3 bucket", func() storageFlags { return &storageS3Flags{} }},
{"sftp", "an SFTP storage", func() storageFlags { return &storageSFTPFlags{} }},
{"webdav", "a WebDAV storage", func() storageFlags { return &storageWebDAVFlags{} }},

View File

@@ -128,7 +128,7 @@ func getLatestReleaseNameFromGitHub(ctx context.Context) (string, error) {
}
if err := json.NewDecoder(resp.Body).Decode(&responseObject); err != nil {
return "", errors.Wrap(err, "invalid Github API response")
return "", errors.Wrap(err, "invalid GitHub API response")
}
return responseObject.Name, nil
@@ -172,7 +172,7 @@ func (c *App) maybeCheckForUpdates(ctx context.Context) (string, error) {
}
if err := c.maybeCheckGithub(ctx, us); err != nil {
return "", errors.Wrap(err, "error checking github")
return "", errors.Wrap(err, "error checking GitHub")
}
log(ctx).Debugf("build version %v, available %v", ensureVPrefix(repo.BuildVersion), ensureVPrefix(us.AvailableVersion))
@@ -211,10 +211,10 @@ func (c *App) maybeCheckGithub(ctx context.Context, us *updateState) error {
newAvailableVersion, err := getLatestReleaseNameFromGitHub(ctx)
if err != nil {
return errors.Wrap(err, "update to get latest release from GitHub")
return errors.Wrap(err, "update to get the latest release from GitHub")
}
log(ctx).Debugf("latest version on github: %v previous %v", newAvailableVersion, us.AvailableVersion)
log(ctx).Debugf("latest version on GitHub: %v previous %v", newAvailableVersion, us.AvailableVersion)
// we got updated version from GitHub, write it in a state file again
if newAvailableVersion != us.AvailableVersion {

View File

@@ -85,7 +85,7 @@ func ValidatePrefix(prefix ID) error {
}
}
return errors.Errorf("invalid prefix, must be a empty or single letter between 'g' and 'z'")
return errors.Errorf("invalid prefix, must be empty or a single letter between 'g' and 'z'")
}
func (bm *WriteManager) getContentDataReadLocked(ctx context.Context, pp *pendingPackInfo, bi Info, output *gather.WriteBuffer) error {

View File

@@ -2158,7 +2158,7 @@ func verifyDeletedContentRead(ctx context.Context, t *testing.T, bm *WriteManage
}
if !ci.GetDeleted() {
t.Errorf("Expected content to be deleted but it is not: %#v", ci)
t.Errorf("Expected content to be deleted, but it is not: %#v", ci)
}
}

View File

@@ -18,7 +18,7 @@ linkTitle = "Kopia"
User Support Forum<i class="fas fa-comments ml-2"></i>
</a>
<a class="btn btn-lg btn-success mr-3 mb-4" href="https://slack.kopia.io">
Developer Discusson <i class="fab fa-slack ml-2 "></i>
Developer Discussion <i class="fab fa-slack ml-2 "></i>
</a>
<p class="font-weight-bold h3 mt-5">Encrypted, Deduplicated, and Compressed Data Backups Using Your Own Cloud Storage</p>
</div>
@@ -39,7 +39,7 @@ View a recorded demo of Kopia using Google Cloud Storage with pluggable encrypti
<div class="col text-center">
<h2 class="text-center pb-3">KopiaUI</h2>
<p>Kopia comes with a user friendly desktop app for Windows, macOS and Linux which allows you to create snapshots, define policies and restore files quickly.</p>
<p>Kopia comes with a user-friendly desktop app for Windows, macOS and Linux which allows you to create snapshots, define policies and restore files quickly.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/sHJjSpasWIo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

View File

@@ -36,13 +36,13 @@ $ kopia policy set /some/dir --before-snapshot-root-action /path/to/command
$ kopia policy set /some/dir --after-snapshot-root-action /path/to/command
```
>NOTE: Unlike all other policy options, `--before-folder-action` and `--after-folder-action` are not inherited and must be set explicitly on target folders, while `--before-snapshot-root-action` and `--after-snapshot-root-action` are interited from their parents and can be set at global, host, user or directory level.
>NOTE: Unlike all other policy options, `--before-folder-action` and `--after-folder-action` are not inherited and must be set explicitly on target folders, while `--before-snapshot-root-action` and `--after-snapshot-root-action` are inherited from their parents and can be set at global, host, user or directory level.
Actions can be `essential` (must succeed, default behavior), `optional` (failures are tolerated) or `async` (kopia will start the action but not wait for it to finish). This can be set
using `--action-command-mode`, for example:
```
$ kopia policy set /some/dir --mode=async \
$ kopia policy set /some/dir --action-command-mode=async \
--before-folder-action /usr/local/bin/notifier.sh
```
@@ -55,10 +55,10 @@ $ kopia policy set /some/dir --action-command-timeout=180s \
Finally, the action command itself can be stored in a repository, when `--persist-action-script` is passed. To prevent binaries from being stored, the maximum script length can be up to 32000 characters.
Scripts stored like this will be temporarily extracted to a local directory and executed using shell command, which is:
Scripts stored like this will be temporarily extracted to a local directory and executed using a shell command, which is:
* On Linux and macOS: `sh -e /path/to/temporary/script/file.sh"
* On Windows: "cmd.exe /c C:\path\to\temporary\script\file.cmd"
* On Linux and macOS: `sh -e /path/to/temporary/script/file.sh`
* On Windows: `cmd.exe /c C:\path\to\temporary\script\file.cmd`
On Unix, if the script has `#!` prefix, it will be executed directly, bypassing the `/bin/sh` shell.
@@ -131,7 +131,7 @@ Those are just some initial ideas, we're certain more interesting types of actio
If you have ideas for extending this mechanism, definitely [file an Issue on Github](https://github.com/kopia/kopia/issues).
If you develop a useful action script that you'd like to share with the communnity, we encourage you
If you develop a useful action script that you'd like to share with the community, we encourage you
to do so by sending us a pull request to add to this web page or you can put them in your own repository and we'll be happy to link it from here.
To get started, click 'Edit This Page' link.

View File

@@ -69,7 +69,7 @@ The API for CAOS can be found in https://godoc.org/github.com/kopia/kopia/repo/o
### Label-Addressable Manifest Storage (LAMS)
While content-addressable storage is a neat idea, dealing with cryptographic hashes its not very convenient for humans to use.
While content-addressable storage is a neat idea, dealing with cryptographic hashes is not very convenient for humans to use.
To address that, Kopia supports another type of storage, used to persist small JSON objects called **Manifests** (describing snapshots, policies, etc.) which are identified by arbitrary `key=value` pairs called labels.

View File

@@ -17,9 +17,9 @@ Default Cache Directory Location varies by operating system:
Where `{unique-id}` is a hash of configuration file used and unique identifier that's specific to a
connected repository.
The cache directory location can be overridden when connecting to a repository by specifying `--cache-directory` flag or `KOPIA_CACHE_DIRECTORY` environment variable. It will be persited in the configuration file.
The cache directory location can be overridden when connecting to a repository by specifying `--cache-directory` flag or `KOPIA_CACHE_DIRECTORY` environment variable. It will be persisted in the configuration file.
When set `KOPIA_CACHE_DIRECTORY` environment variable takes precendence over location stored in the configuration file.
When set `KOPIA_CACHE_DIRECTORY` environment variable takes precedence over location stored in the configuration file.
### Cache Types

View File

@@ -16,7 +16,7 @@ In order to ensure that snapshots created with Kopia will be available as the pr
- for releases with major version >= `v2` (i.e. `vx.y.z`), *previous version* means previous *major* version (`v(x-1)`).
2. While not explicitly guaranteed, it is possible and likely that Kopia will be able to read (but not necessarily write) snapshots created with even older versions of software than explicitly guaranteed. For example it's likely that Kopia `v0.6.0` will read snapshots created using `v0.3.0`, even though it's three releases behind.
2. While not explicitly guaranteed, it is possible and likely that Kopia will be able to read (but not necessarily write) snapshots created with even older versions of software than explicitly guaranteed. For example, it's likely that Kopia `v0.6.0` will read snapshots created using `v0.3.0`, even though it's three releases behind.
3. In order to avoid corrupting data, Kopia will refuse to mutate repositories it's not designed to safely handle. That means, it will typically only allow reading, but not writing older versions of repository, unless explicitly documented and tested.

View File

@@ -50,5 +50,5 @@ You can control how much data is written to console and log files by using flags
### Color Output
By default console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`.
By default, console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`.

View File

@@ -79,7 +79,7 @@ The current user must be the maintenance owner.
## Maintenance Safety
Kopia's maintenance routine follows certain safety rules which rely on passage of time to ensure correctness. This is needed in case other Kopia clients are currently operating on the repository. To guarantee correctness, certain length of time must pass to ensure all caches and transient state are properly synchronized with the repository. Kopia must also also account for eventual consistency delays intoduced by the blob storage provider.
Kopia's maintenance routine follows certain safety rules which rely on passage of time to ensure correctness. This is needed in case other Kopia clients are currently operating on the repository. To guarantee correctness, certain length of time must pass to ensure all caches and transient state are properly synchronized with the repository. Kopia must also account for eventual consistency delays introduced by the blob storage provider.
This means that effects of full maintenance are not immediate - it may take several hours and/or multiple maintenance cycles to remove blobs that are not in use.

View File

@@ -17,13 +17,13 @@ $ kopia repository sync-to gcs --bucket my-bucket
The calling user must have read access to current repository and read/write access to the destination.
By default synchronization does not perform any deletions in the destination location, even if the source file has been deleted. Without deletions, the resulting repository will still be correct, but will not benefit from compaction and will run more slowly. To allow deletions, pass `--delete` option:
By default, synchronization does not perform any deletions in the destination location, even if the source file has been deleted. Without deletions, the resulting repository will still be correct, but will not benefit from compaction and will run more slowly. To allow deletions, pass `--delete` option:
```
$ kopia repository sync-to filesystem --path /dest/repository --delete
```
When synchronizing to a filesystem location, it is important to check that the filesystem is mounted correctly. To ensure that Kopia will not unneccessarily download potentially large repositories when destination filesystem is accidentally unmounted, pass `--must-exist`:
When synchronizing to a filesystem location, it is important to check that the filesystem is mounted correctly. To ensure that Kopia will not unnecessarily download potentially large repositories when destination filesystem is accidentally unmounted, pass `--must-exist`:
```
$ kopia repository sync-to filesystem --path /dest/repository --must-exist

View File

@@ -24,7 +24,7 @@ Kopia also uses splitting based on [rolling hash](https://en.wikipedia.org/wiki/
### Restore
To restore data, Kopia can mount contents of a Repository as a local disk and you can use normal file copy tools to perform full or selective restore.
To restore data, Kopia can mount the contents of a Repository as a local disk, and you can use normal file copy tools to perform full or selective restore.
### Encryption
@@ -43,7 +43,7 @@ Compression and decompression can be parallelized to speed up the process.
* [zstd](https://github.com/klauspost/compress/tree/master/zstd) : [Zstandard](https://facebook.github.io/zstd/) is a real-time compression algorithm, providing high compression ratios. It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder. A high performance compression algorithm is implemented. For now focused on speed.
You can activate compression on a per directory basis
You can activate compression on a per-directory basis
```shell
kopia policy set <path> --compression=<pgzip|s2|zstd>
@@ -86,7 +86,7 @@ Kopia has rich command-line interface for managing snapshots and policies, but a
### API Server
Kopia can be run in a server mode, in which case it exposes a HTTP API that can be used to build client tools that can trigger snapshots, get their status and access snapshotted data.
Kopia can be run in a server mode, in which case it exposes an HTTP API that can be used to build client tools that can trigger snapshots, get their status and access snapshotted data.
### Disaster Recovery

View File

@@ -118,7 +118,7 @@ uploaded snapshot 8a45c3b079cf5e7b99fb855a3701607a
(root kfe997567fb1cf8a13341e4ca11652f70) in 563.670362ms
```
Notice that snapshot creation was nearly instantenous - Kopia did not have to upload
Notice that snapshot creation was nearly instantaneous - Kopia did not have to upload
almost any files to the repository, except tiny piece of metadata about the snapshot itself.
All snapshots in Kopia are always incremental - they will only upload files that are not in the repository yet, which saves storage space and upload time. This even applies to files that were moved or renamed. In fact if two computers have exactly the same file, it will still be stored only once.
@@ -324,7 +324,7 @@ Files policy:
.kopiaignore inherited from (global)
```
Finally to list all policies, we can use `kopia policy list`:
Finally, to list all policies, we can use `kopia policy list`:
```
$ kopia policy list

View File

@@ -68,7 +68,7 @@ Simply download file named `KopiaUI-Setup-X.Y.Z.exe`, double click and follow on
### macOS CLI using Homebrew
On macOS you can use [Homebrew](https://brew.sh) to install and keep Kopia up-to-date.
On macOS, you can use [Homebrew](https://brew.sh) to install and keep Kopia up-to-date.
To install:
@@ -109,7 +109,7 @@ echo "deb http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources
sudo apt update
```
>By default the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable.
>By default, the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable.
Finally, install Kopia or KopiaUI:
@@ -141,9 +141,9 @@ gpgkey=https://kopia.io/signing-key
EOF
```
>By default the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable.
>By default, the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable.
Finally install Kopia or KopiaUI:
Finally, install Kopia or KopiaUI:
```shell
sudo yum install kopia
@@ -217,9 +217,9 @@ Kopia provides pre-built Docker container images for `amd64`, `arm64` and `arm`
The following tags are available:
* `latest` - tracks latest stable release
* `testing` - tracks latest stable or pre-release (such as a beta or release candidate)
* `unstable` - tracks latest unstable nightly build
* `latest` - tracks the latest stable release
* `testing` - tracks the latest stable or pre-release (such as a beta or release candidate)
* `unstable` - tracks the latest unstable nightly build
* `major.minor` - latest patch release for a given major and minor version (e.g. `0.8`)
* `major.minor.patch` - specific stable release

View File

@@ -59,7 +59,7 @@ NOTICE: The token printed above can be trivially decoded to reveal the repositor
For each repository connection, Kopia maintains a configuration file and local cache:
By default the configuration file is located in your home directory under:
By default, the configuration file is located in your home directory under:
* `%APPDATA%\kopia\repository.config` on Windows
* `$HOME/Library/Application Support/kopia/repository.config` on macOS

View File

@@ -131,7 +131,7 @@ sftp>
### Creating a repository
Once the passwordless connection works, then you can create a Kopia SFTP repository. Assuming you want the files to be stored under `/remote/path`, run the command below. Adjust the user name and paths to the key file and known hosts file as necessary.
Once the passwordless connection works, then you can create a Kopia SFTP repository. Assuming you want the files to be stored under `/remote/path`, run the command below. Adjust the username and paths to the key file and known hosts file as necessary.
```shell
$ kopia repository create sftp \
@@ -180,7 +180,7 @@ server-side timestamps.
### Creating a repository
First you should follow rclone instructions for setting up a remote. This is provider specific, detailed instructions can be fount at https://rclone.org/#providers.
First you should follow rclone instructions for setting up a remote. This is provider specific, detailed instructions can be found at https://rclone.org/#providers.
Assuming you've configured a remote named `my-remote`, you may create Kopia repository using:

View File

@@ -4,14 +4,14 @@ linkTitle: "Repository Server"
weight: 44
---
By default every user of Kopia repository directly connects to a underlying storage using read-write access. If the users who share repository don't completely trust each other, some malicious actors can delete repository data structures causing data loss for others.
By default, every user of Kopia repository directly connects to an underlying storage using read-write access. If the users who share repository don't completely trust each other, some malicious actors can delete repository data structures causing data loss for others.
Repository Server allows an instance of kopia to proxy access to the underlying storage and has Kopia clients proxy all access through it, only requiring username and password to talk to server without any knowledge of
repository storage credentials.
In repository server mode, each user is limited to seeing their own snapshots and policy manifest without being able to access those from another user account.
>NOTE: Only snapshot and policy manifests are access-controlled, not the underlying contents. If two users shared the same file, it will be backed using exactly the same same content IDs. The consequence of this is that if a third user can guess the content ID of files in the repository, they will be able to access the files. Because content IDs are one-way salted hashes of contents, in principle it should be impossible to guess content ID without possessing original content.
>NOTE: Only snapshot and policy manifests are access-controlled, not the underlying contents. If two users shared the same file, it will be backed using exactly the same content IDs. The consequence of this is that if a third user can guess the content ID of files in the repository, they will be able to access the files. Because content IDs are one-way salted hashes of contents, in principle it should be impossible to guess content ID without possessing original content.
## Starting Repository Server
@@ -42,7 +42,7 @@ Other commands are also available:
## Configuring Allowed Users - Kopia v0.7
>NOTE: This method is still supported in v0.8 but it's recommended to use `kopia server user` to manage users
>NOTE: This method is still supported in v0.8, but it's recommended to use `kopia server user` to manage users
instead.
In Kopia v7.0 the user list must be put in a text file formatted using the [htpasswd](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) utility from Apache.

View File

@@ -6,7 +6,7 @@ weight: 21
### Upgrading Kopia to v0.9
Kopia v0.9 adds support for several new features thanks to brand new index format.
Kopia v0.9 adds support for several new features thanks to a brand-new index format.
If your repository was created in a version older than v0.9, please follow the steps below to upgrade.