[#1] Add frostfs backend #1
21 changed files with 39482 additions and 16602 deletions
45
.forgejo/ISSUE_TEMPLATE/bug_report.md
Normal file
45
.forgejo/ISSUE_TEMPLATE/bug_report.md
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: community, triage, bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--- Provide a general summary of the issue in the Title above -->
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
<!--- If you're describing a bug, tell us what should happen -->
|
||||||
|
<!--- If you're suggesting a change/improvement, tell us how it should work -->
|
||||||
|
|
||||||
|
## Current Behavior
|
||||||
|
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
|
||||||
|
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
|
||||||
|
|
||||||
|
## Possible Solution
|
||||||
|
<!--- Not obligatory -->
|
||||||
|
<!--- If no reason/fix/additions for the bug can be suggested, -->
|
||||||
|
<!--- uncomment the following phrase: -->
|
||||||
|
|
||||||
|
<!--- No fix can be suggested by a QA engineer. Further solutions shall be up to developers. -->
|
||||||
|
|
||||||
|
## Steps to Reproduce (for bugs)
|
||||||
|
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||||
|
<!--- reproduce this bug. -->
|
||||||
|
|
||||||
|
1.
|
||||||
|
|
||||||
|
## Context
|
||||||
|
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||||
|
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||||
|
|
||||||
|
## Regression
|
||||||
|
<!-- Is this issue a regression? (Yes / No) -->
|
||||||
|
<!-- If Yes, optionally please include version or commit id or PR# that caused this regression, if you have these details. -->
|
||||||
|
|
||||||
|
## Your Environment
|
||||||
|
<!--- Include as many relevant details about the environment you experienced the bug in -->
|
||||||
|
* Version used:
|
||||||
|
* Server setup and configuration:
|
||||||
|
* Operating System and version (`uname -a`):
|
1
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
1
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
blank_issues_enabled: false
|
24
.forgejo/workflows/builds.yaml
Normal file
24
.forgejo/workflows/builds.yaml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- tcl/master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
builds:
|
||||||
|
name: Builds
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go_versions: [ '1.22', '1.23' ]
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go_versions }}'
|
||||||
|
|
||||||
|
- name: Build binary
|
||||||
|
run: make
|
20
.forgejo/workflows/dco.yml
Normal file
20
.forgejo/workflows/dco.yml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dco:
|
||||||
|
name: DCO
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: '1.23'
|
||||||
|
|
||||||
|
- name: Run commit format checker
|
||||||
|
uses: https://git.frostfs.info/TrueCloudLab/dco-go@v3
|
||||||
|
with:
|
||||||
|
from: 'origin/${{ github.event.pull_request.base.ref }}'
|
67
.forgejo/workflows/tests.yml
Normal file
67
.forgejo/workflows/tests.yml
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- tcl/master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
name: Lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: '1.23'
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Install linters
|
||||||
|
run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||||
|
|
||||||
|
- name: Run linters
|
||||||
|
run: make check
|
||||||
|
test:
|
||||||
|
name: Test
|
||||||
|
runs-on: oci-runner
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go_versions: [ '1.23' ]
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go_versions }}'
|
||||||
|
|
||||||
|
- name: Tests for the FrostFS backend
|
||||||
|
env:
|
||||||
|
RESTIC_TEST_FUSE: false
|
||||||
|
AIO_IMAGE: truecloudlab/frostfs-aio
|
||||||
|
AIO_VERSION: 1.7.0-nightly.4
|
||||||
|
RCLONE_CONFIG: /config/rclone.conf
|
||||||
|
|
||||||
|
# run only tests related to FrostFS backend
|
||||||
|
run: |-
|
||||||
|
podman-service.sh
|
||||||
|
podman info
|
||||||
|
|
||||||
|
mkdir /config
|
||||||
|
printf "[TestFrostFS]\ntype = frostfs\nendpoint = localhost:8080\nwallet = /config/wallet.json\nplacement_policy = REP 1\nrequest_timeout = 20s\nconnection_timeout = 21s" > /config/rclone.conf
|
||||||
|
|
||||||
|
echo "Run frostfs aio container"
|
||||||
|
docker run -d --net=host --name aio $AIO_IMAGE:$AIO_VERSION --restart always -p 8080:8080
|
||||||
|
|
||||||
|
echo "Wait for frostfs to start"
|
||||||
|
until docker exec aio curl --fail http://localhost:8083 > /dev/null 2>&1; do sleep 0.2; done;
|
||||||
|
|
||||||
|
echo "Issue creds"
|
||||||
|
docker exec aio /usr/bin/issue-creds.sh native
|
||||||
|
echo "Copy wallet"
|
||||||
|
docker cp aio:/config/user-wallet.json /config/wallet.json
|
||||||
|
|
||||||
|
echo "Start tests"
|
||||||
|
go test -v github.com/rclone/rclone/backend/frostfs
|
37880
MANUAL.html
generated
37880
MANUAL.html
generated
File diff suppressed because it is too large
Load diff
485
MANUAL.md
generated
485
MANUAL.md
generated
|
@ -1,6 +1,6 @@
|
||||||
% rclone(1) User Manual
|
% rclone(1) User Manual
|
||||||
% Nick Craig-Wood
|
% Nick Craig-Wood
|
||||||
% Nov 15, 2024
|
% Jan 10, 2025
|
||||||
|
|
||||||
# Rclone syncs your files to cloud storage
|
# Rclone syncs your files to cloud storage
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@ WebDAV or S3, that work out of the box.)
|
||||||
- Enterprise File Fabric
|
- Enterprise File Fabric
|
||||||
- Fastmail Files
|
- Fastmail Files
|
||||||
- Files.com
|
- Files.com
|
||||||
|
- FrostFS
|
||||||
- FTP
|
- FTP
|
||||||
- Gofile
|
- Gofile
|
||||||
- Google Cloud Storage
|
- Google Cloud Storage
|
||||||
|
@ -20497,7 +20498,7 @@ Flags for general networking and HTTP stuff.
|
||||||
--tpslimit float Limit HTTP transactions per second to this
|
--tpslimit float Limit HTTP transactions per second to this
|
||||||
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
||||||
--use-cookies Enable session cookiejar
|
--use-cookies Enable session cookiejar
|
||||||
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2")
|
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2-beta.8331.25cf42493.feature/add-frostfs-support")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -20934,6 +20935,21 @@ Backend-only flags (these can be set in the config file also).
|
||||||
--filescom-password string The password used to authenticate with Files.com (obscured)
|
--filescom-password string The password used to authenticate with Files.com (obscured)
|
||||||
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
||||||
--filescom-username string The username used to authenticate with Files.com
|
--filescom-username string The username used to authenticate with Files.com
|
||||||
|
--frostfs-address string Address of account
|
||||||
|
--frostfs-ape-cache-invalidation-duration Duration APE cache invalidation duration (default 8s)
|
||||||
|
--frostfs-ape-cache-invalidation-timeout Duration APE cache invalidation timeout (default 24s)
|
||||||
|
--frostfs-ape-chain-check-interval Duration The interval for verifying that the APE chain is saved in FrostFS (default 500ms)
|
||||||
|
--frostfs-connection-timeout Duration FrostFS connection timeout (default 4s)
|
||||||
|
--frostfs-container-creation-policy string Container creation policy for new containers (default "private")
|
||||||
|
--frostfs-description string Description of the remote
|
||||||
|
--frostfs-endpoint string Endpoints to connect to FrostFS node
|
||||||
|
--frostfs-password string Password to decrypt wallet
|
||||||
|
--frostfs-placement-policy string Placement policy for new containers (default "REP 3")
|
||||||
|
--frostfs-rebalance-interval Duration FrostFS rebalance connections interval (default 15s)
|
||||||
|
--frostfs-request-timeout Duration FrostFS request timeout (default 12s)
|
||||||
|
--frostfs-rpc-endpoint string Endpoint to connect to Neo rpc node
|
||||||
|
--frostfs-session-expiration int FrostFS session expiration epoch (default 4294967295)
|
||||||
|
--frostfs-wallet string Path to wallet
|
||||||
--ftp-ask-password Allow asking for FTP password when needed
|
--ftp-ask-password Allow asking for FTP password when needed
|
||||||
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
||||||
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
||||||
|
@ -34604,6 +34620,467 @@ Properties:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# FrostFS
|
||||||
|
|
||||||
|
Rclone FrostFS support is provided using the
|
||||||
|
[git.frostfs.info/TrueCloudLab/frostfs-sdk-go](https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go) package
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
To create an FrostFS configuration named `remote`, run
|
||||||
|
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
Rclone config guides you through an interactive setup process. A minimal
|
||||||
|
rclone FrostFS remote definition only requires endpoint and path to FrostFS user wallet.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
No remotes found, make a new one?
|
||||||
|
n) New remote
|
||||||
|
s) Set configuration password
|
||||||
|
q) Quit config
|
||||||
|
n/s/q> n
|
||||||
|
|
||||||
|
Enter name for new remote.
|
||||||
|
name> remote
|
||||||
|
|
||||||
|
Option Storage.
|
||||||
|
Type of storage to configure.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / 1Fichier
|
||||||
|
\ (fichier)
|
||||||
|
2 / Akamai NetStorage
|
||||||
|
\ (netstorage)
|
||||||
|
3 / Alias for an existing remote
|
||||||
|
\ (alias)
|
||||||
|
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
|
||||||
|
\ (s3)
|
||||||
|
5 / Backblaze B2
|
||||||
|
\ (b2)
|
||||||
|
6 / Better checksums for other remotes
|
||||||
|
\ (hasher)
|
||||||
|
7 / Box
|
||||||
|
\ (box)
|
||||||
|
8 / Cache a remote
|
||||||
|
\ (cache)
|
||||||
|
9 / Citrix Sharefile
|
||||||
|
\ (sharefile)
|
||||||
|
10 / Combine several remotes into one
|
||||||
|
\ (combine)
|
||||||
|
11 / Compress a remote
|
||||||
|
\ (compress)
|
||||||
|
12 / Distributed, decentralized object storage FrostFS
|
||||||
|
\ (frostfs)
|
||||||
|
13 / Dropbox
|
||||||
|
\ (dropbox)
|
||||||
|
14 / Encrypt/Decrypt a remote
|
||||||
|
\ (crypt)
|
||||||
|
15 / Enterprise File Fabric
|
||||||
|
\ (filefabric)
|
||||||
|
16 / FTP
|
||||||
|
\ (ftp)
|
||||||
|
17 / Files.com
|
||||||
|
\ (filescom)
|
||||||
|
18 / Gofile
|
||||||
|
\ (gofile)
|
||||||
|
19 / Google Cloud Storage (this is not Google Drive)
|
||||||
|
\ (google cloud storage)
|
||||||
|
20 / Google Drive
|
||||||
|
\ (drive)
|
||||||
|
21 / Google Photos
|
||||||
|
\ (google photos)
|
||||||
|
22 / HTTP
|
||||||
|
\ (http)
|
||||||
|
23 / Hadoop distributed file system
|
||||||
|
\ (hdfs)
|
||||||
|
24 / HiDrive
|
||||||
|
\ (hidrive)
|
||||||
|
25 / ImageKit.io
|
||||||
|
\ (imagekit)
|
||||||
|
26 / In memory object storage system.
|
||||||
|
\ (memory)
|
||||||
|
27 / Internet Archive
|
||||||
|
\ (internetarchive)
|
||||||
|
28 / Jottacloud
|
||||||
|
\ (jottacloud)
|
||||||
|
29 / Koofr, Digi Storage and other Koofr-compatible storage providers
|
||||||
|
\ (koofr)
|
||||||
|
30 / Linkbox
|
||||||
|
\ (linkbox)
|
||||||
|
31 / Local Disk
|
||||||
|
\ (local)
|
||||||
|
32 / Mail.ru Cloud
|
||||||
|
\ (mailru)
|
||||||
|
33 / Mega
|
||||||
|
\ (mega)
|
||||||
|
34 / Microsoft Azure Blob Storage
|
||||||
|
\ (azureblob)
|
||||||
|
35 / Microsoft Azure Files
|
||||||
|
\ (azurefiles)
|
||||||
|
36 / Microsoft OneDrive
|
||||||
|
\ (onedrive)
|
||||||
|
37 / OpenDrive
|
||||||
|
\ (opendrive)
|
||||||
|
38 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
|
||||||
|
\ (swift)
|
||||||
|
39 / Oracle Cloud Infrastructure Object Storage
|
||||||
|
\ (oracleobjectstorage)
|
||||||
|
40 / Pcloud
|
||||||
|
\ (pcloud)
|
||||||
|
41 / PikPak
|
||||||
|
\ (pikpak)
|
||||||
|
42 / Pixeldrain Filesystem
|
||||||
|
\ (pixeldrain)
|
||||||
|
43 / Proton Drive
|
||||||
|
\ (protondrive)
|
||||||
|
44 / Put.io
|
||||||
|
\ (putio)
|
||||||
|
45 / QingCloud Object Storage
|
||||||
|
\ (qingstor)
|
||||||
|
46 / Quatrix by Maytech
|
||||||
|
\ (quatrix)
|
||||||
|
47 / SMB / CIFS
|
||||||
|
\ (smb)
|
||||||
|
48 / SSH/SFTP
|
||||||
|
\ (sftp)
|
||||||
|
49 / Sia Decentralized Cloud
|
||||||
|
\ (sia)
|
||||||
|
50 / Storj Decentralized Cloud Storage
|
||||||
|
\ (storj)
|
||||||
|
51 / Sugarsync
|
||||||
|
\ (sugarsync)
|
||||||
|
52 / Transparently chunk/split large files
|
||||||
|
\ (chunker)
|
||||||
|
53 / Uloz.to
|
||||||
|
\ (ulozto)
|
||||||
|
54 / Union merges the contents of several upstream fs
|
||||||
|
\ (union)
|
||||||
|
55 / Uptobox
|
||||||
|
\ (uptobox)
|
||||||
|
56 / WebDAV
|
||||||
|
\ (webdav)
|
||||||
|
57 / Yandex Disk
|
||||||
|
\ (yandex)
|
||||||
|
58 / Zoho
|
||||||
|
\ (zoho)
|
||||||
|
59 / premiumize.me
|
||||||
|
\ (premiumizeme)
|
||||||
|
60 / seafile
|
||||||
|
\ (seafile)
|
||||||
|
Storage> frostfs
|
||||||
|
|
||||||
|
Option endpoint.
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / One endpoint.
|
||||||
|
\ (s01.frostfs.devenv:8080)
|
||||||
|
2 / Multiple endpoints to form pool.
|
||||||
|
\ (s01.frostfs.devenv:8080 s02.frostfs.devenv:8080)
|
||||||
|
3 / Multiple endpoints with priority (less value is higher priority). Until s01 is healthy all request will be send to it.
|
||||||
|
\ (s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2)
|
||||||
|
4 / Multiple endpoints with priority and weights. After s01 is unhealthy requests will be send to s02 and s03 in proportions 10% and 90% respectively.
|
||||||
|
\ (s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9)
|
||||||
|
endpoint> s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
|
||||||
|
Option connection_timeout.
|
||||||
|
FrostFS connection timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (4s).
|
||||||
|
connection_timeout>
|
||||||
|
|
||||||
|
Option request_timeout.
|
||||||
|
FrostFS request timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (4s).
|
||||||
|
request_timeout>
|
||||||
|
|
||||||
|
Option rebalance_interval.
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
Enter a value of type Duration. Press Enter for the default (15s).
|
||||||
|
rebalance_interval>
|
||||||
|
|
||||||
|
Option session_expiration.
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
Enter a signed integer. Press Enter for the default (4294967295).
|
||||||
|
session_expiration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_duration.
|
||||||
|
APE cache invalidation duration
|
||||||
|
Enter a value of type Duration. Press Enter for the default (8s).
|
||||||
|
ape_cache_invalidation_duration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_timeout.
|
||||||
|
APE cache invalidation timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (16s).
|
||||||
|
ape_cache_invalidation_timeout>
|
||||||
|
|
||||||
|
Option ape_chain_check_interval.
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
Enter a value of type Duration. Press Enter for the default (500ms).
|
||||||
|
ape_chain_check_interval>
|
||||||
|
|
||||||
|
Option rpc_endpoint.
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
rpc_endpoint>
|
||||||
|
|
||||||
|
Option wallet.
|
||||||
|
Path to wallet
|
||||||
|
Enter a value.
|
||||||
|
wallet> /wallets/wallet.conf
|
||||||
|
|
||||||
|
Option address.
|
||||||
|
Address of account
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
address>
|
||||||
|
|
||||||
|
Option password.
|
||||||
|
Password to decrypt wallet
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
password>
|
||||||
|
|
||||||
|
Option placement_policy.
|
||||||
|
Placement policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (REP 3).
|
||||||
|
1 / Container will have 3 replicas
|
||||||
|
\ (REP 3)
|
||||||
|
placement_policy> REP 1
|
||||||
|
|
||||||
|
Option container_creation_policy.
|
||||||
|
Container creation policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (private).
|
||||||
|
1 / Public container, anyone can read and write
|
||||||
|
\ (public-read-write)
|
||||||
|
2 / Public container, owner can read and write, others can only read
|
||||||
|
\ (public-read)
|
||||||
|
3 / Private container, only owner has access to it
|
||||||
|
\ (private)
|
||||||
|
container_creation_policy>
|
||||||
|
|
||||||
|
Edit advanced config?
|
||||||
|
y) Yes
|
||||||
|
n) No (default)
|
||||||
|
y/n> n
|
||||||
|
|
||||||
|
Configuration complete.
|
||||||
|
Options:
|
||||||
|
- type: frostfs
|
||||||
|
- endpoint: s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
- password: M@zPGpWDravchenko/develop/go/playground/play_with_ape/cfg/wallet_akrav.js
|
||||||
|
- placement_policy: REP 1
|
||||||
|
Keep this "remote" remote?
|
||||||
|
y) Yes this is OK (default)
|
||||||
|
e) Edit this remote
|
||||||
|
d) Delete this remote
|
||||||
|
y/e/d> y
|
||||||
|
```
|
||||||
|
|
||||||
|
As a remote root directory, you can use either the container identifier or its user-friendly name.
|
||||||
|
If you choose to use a container name, rclone will create a new container with that name when
|
||||||
|
it's used for the first time.
|
||||||
|
|
||||||
|
For example, both of the following commands would be valid if there was a `~/test-copy` directory and a container with
|
||||||
|
the identifier `23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf`:
|
||||||
|
|
||||||
|
rclone copy ~/test-copy remote:23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf/test-copy
|
||||||
|
rclone copy ~/test-copy remote:container-name/test-copy
|
||||||
|
|
||||||
|
|
||||||
|
### Standard options
|
||||||
|
|
||||||
|
Here are the Standard options specific to frostfs (Distributed, decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
#### --frostfs-endpoint
|
||||||
|
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
- Examples:
|
||||||
|
- "s01.frostfs.devenv:8080"
|
||||||
|
- One endpoint.
|
||||||
|
- "s01.frostfs.devenv:8080 s02.frostfs.devenv:8080"
|
||||||
|
- Multiple endpoints to form pool.
|
||||||
|
- "s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2"
|
||||||
|
- Multiple endpoints with priority (lower value has higher priority). Until s01 is healthy, all requests will be sent to it.
|
||||||
|
- "s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9"
|
||||||
|
- Multiple endpoints with priority and weights. After the s01 endpoint is unhealthy, requests will be sent to the s02 and s03 endpoints in proportions of 10% and 90%, respectively.
|
||||||
|
|
||||||
|
#### --frostfs-connection-timeout
|
||||||
|
|
||||||
|
FrostFS connection timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: connection_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONNECTION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 4s
|
||||||
|
|
||||||
|
#### --frostfs-request-timeout
|
||||||
|
|
||||||
|
FrostFS request timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: request_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_REQUEST_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 12s
|
||||||
|
|
||||||
|
#### --frostfs-rebalance-interval
|
||||||
|
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rebalance_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_REBALANCE_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 15s
|
||||||
|
|
||||||
|
#### --frostfs-session-expiration
|
||||||
|
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: session_expiration
|
||||||
|
- Env Var: RCLONE_FROSTFS_SESSION_EXPIRATION
|
||||||
|
- Type: int
|
||||||
|
- Default: 4294967295
|
||||||
|
|
||||||
|
#### --frostfs-ape-cache-invalidation-duration
|
||||||
|
|
||||||
|
APE cache invalidation duration
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_duration
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_DURATION
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 8s
|
||||||
|
|
||||||
|
#### --frostfs-ape-cache-invalidation-timeout
|
||||||
|
|
||||||
|
APE cache invalidation timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 24s
|
||||||
|
|
||||||
|
#### --frostfs-ape-chain-check-interval
|
||||||
|
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_chain_check_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CHAIN_CHECK_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 500ms
|
||||||
|
|
||||||
|
#### --frostfs-rpc-endpoint
|
||||||
|
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rpc_endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_RPC_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-wallet
|
||||||
|
|
||||||
|
Path to wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: wallet
|
||||||
|
- Env Var: RCLONE_FROSTFS_WALLET
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
|
||||||
|
#### --frostfs-address
|
||||||
|
|
||||||
|
Address of account
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: address
|
||||||
|
- Env Var: RCLONE_FROSTFS_ADDRESS
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-password
|
||||||
|
|
||||||
|
Password to decrypt wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: password
|
||||||
|
- Env Var: RCLONE_FROSTFS_PASSWORD
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-placement-policy
|
||||||
|
|
||||||
|
Placement policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: placement_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_PLACEMENT_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "REP 3"
|
||||||
|
- Examples:
|
||||||
|
- "REP 3"
|
||||||
|
- Container will have 3 replicas
|
||||||
|
|
||||||
|
#### --frostfs-container-creation-policy
|
||||||
|
|
||||||
|
Container creation policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: container_creation_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONTAINER_CREATION_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "private"
|
||||||
|
- Examples:
|
||||||
|
- "public-read-write"
|
||||||
|
- Public container, anyone can read and write
|
||||||
|
- "public-read"
|
||||||
|
- Public container, owner can read and write, others can only read
|
||||||
|
- "private"
|
||||||
|
- Private container, only owner has access to it
|
||||||
|
|
||||||
|
### Advanced options
|
||||||
|
|
||||||
|
Here are the Advanced options specific to frostfs (Distributed, decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
#### --frostfs-description
|
||||||
|
|
||||||
|
Description of the remote.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: description
|
||||||
|
- Env Var: RCLONE_FROSTFS_DESCRIPTION
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# FTP
|
# FTP
|
||||||
|
|
||||||
FTP is the File Transfer Protocol. Rclone FTP support is provided using the
|
FTP is the File Transfer Protocol. Rclone FTP support is provided using the
|
||||||
|
@ -34727,13 +35204,13 @@ therefore works even in Windows Command Prompt:
|
||||||
rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM
|
rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM
|
||||||
rclone lsf :ftp,host=speedtest.tele2.net,user=anonymous,pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM:
|
rclone lsf :ftp,host=speedtest.tele2.net,user=anonymous,pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM:
|
||||||
|
|
||||||
### Implicit TLS
|
### Implicit TLS[util.go](../../backend/frostfs/util.go)
|
||||||
|
|
||||||
Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
|
Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
|
||||||
be enabled in the FTP backend config for the remote, or with
|
be enabled in the FTP backend config for the remote, or with
|
||||||
[`--ftp-tls`](#ftp-tls). The default FTPS port is `990`, not `21` and
|
[`--ftp-tls`](#ftp-tls). The default FTPS port is `990`, not `21` and
|
||||||
can be set with [`--ftp-port`](#ftp-port).
|
can be set with [`--ftp-port`](#ftp-port).
|
||||||
|
[util.go](../../backend/frostfs/util.go)
|
||||||
### Restricted filename characters
|
### Restricted filename characters
|
||||||
|
|
||||||
In addition to the [default restricted characters set](https://rclone.org/overview/#restricted-characters)
|
In addition to the [default restricted characters set](https://rclone.org/overview/#restricted-characters)
|
||||||
|
|
715
MANUAL.txt
generated
715
MANUAL.txt
generated
|
@ -1,6 +1,6 @@
|
||||||
rclone(1) User Manual
|
rclone(1) User Manual
|
||||||
Nick Craig-Wood
|
Nick Craig-Wood
|
||||||
Nov 15, 2024
|
Jan 10, 2025
|
||||||
|
|
||||||
Rclone syncs your files to cloud storage
|
Rclone syncs your files to cloud storage
|
||||||
|
|
||||||
|
@ -109,6 +109,7 @@ S3, that work out of the box.)
|
||||||
- Enterprise File Fabric
|
- Enterprise File Fabric
|
||||||
- Fastmail Files
|
- Fastmail Files
|
||||||
- Files.com
|
- Files.com
|
||||||
|
- FrostFS
|
||||||
- FTP
|
- FTP
|
||||||
- Gofile
|
- Gofile
|
||||||
- Google Cloud Storage
|
- Google Cloud Storage
|
||||||
|
@ -1202,11 +1203,11 @@ what happened to it. These are reminiscent of diff files.
|
||||||
|
|
||||||
- = path means path was found in source and destination and was
|
- = path means path was found in source and destination and was
|
||||||
identical
|
identical
|
||||||
- `- path` means path was missing on the source, so only in the
|
- - path means path was missing on the source, so only in the
|
||||||
destination
|
destination
|
||||||
- `+ path` means path was missing on the destination, so only in the
|
- + path means path was missing on the destination, so only in the
|
||||||
source
|
source
|
||||||
- `* path` means path was present in source and destination but
|
- * path means path was present in source and destination but
|
||||||
different.
|
different.
|
||||||
- ! path means there was an error reading or hashing the source or
|
- ! path means there was an error reading or hashing the source or
|
||||||
dest.
|
dest.
|
||||||
|
@ -1714,11 +1715,11 @@ what happened to it. These are reminiscent of diff files.
|
||||||
|
|
||||||
- = path means path was found in source and destination and was
|
- = path means path was found in source and destination and was
|
||||||
identical
|
identical
|
||||||
- `- path` means path was missing on the source, so only in the
|
- - path means path was missing on the source, so only in the
|
||||||
destination
|
destination
|
||||||
- `+ path` means path was missing on the destination, so only in the
|
- + path means path was missing on the destination, so only in the
|
||||||
source
|
source
|
||||||
- `* path` means path was present in source and destination but
|
- * path means path was present in source and destination but
|
||||||
different.
|
different.
|
||||||
- ! path means there was an error reading or hashing the source or
|
- ! path means there was an error reading or hashing the source or
|
||||||
dest.
|
dest.
|
||||||
|
@ -2919,11 +2920,11 @@ what happened to it. These are reminiscent of diff files.
|
||||||
|
|
||||||
- = path means path was found in source and destination and was
|
- = path means path was found in source and destination and was
|
||||||
identical
|
identical
|
||||||
- `- path` means path was missing on the source, so only in the
|
- - path means path was missing on the source, so only in the
|
||||||
destination
|
destination
|
||||||
- `+ path` means path was missing on the destination, so only in the
|
- + path means path was missing on the destination, so only in the
|
||||||
source
|
source
|
||||||
- `* path` means path was present in source and destination but
|
- * path means path was present in source and destination but
|
||||||
different.
|
different.
|
||||||
- ! path means there was an error reading or hashing the source or
|
- ! path means there was an error reading or hashing the source or
|
||||||
dest.
|
dest.
|
||||||
|
@ -4023,11 +4024,11 @@ what happened to it. These are reminiscent of diff files.
|
||||||
|
|
||||||
- = path means path was found in source and destination and was
|
- = path means path was found in source and destination and was
|
||||||
identical
|
identical
|
||||||
- `- path` means path was missing on the source, so only in the
|
- - path means path was missing on the source, so only in the
|
||||||
destination
|
destination
|
||||||
- `+ path` means path was missing on the destination, so only in the
|
- + path means path was missing on the destination, so only in the
|
||||||
source
|
source
|
||||||
- `* path` means path was present in source and destination but
|
- * path means path was present in source and destination but
|
||||||
different.
|
different.
|
||||||
- ! path means there was an error reading or hashing the source or
|
- ! path means there was an error reading or hashing the source or
|
||||||
dest.
|
dest.
|
||||||
|
@ -13174,9 +13175,9 @@ Will get their own names
|
||||||
|
|
||||||
Valid remote names
|
Valid remote names
|
||||||
|
|
||||||
Remote names are case sensitive, and must adhere to the following rules:
|
Remote names are case sensitive, and must adhere to the following
|
||||||
- May contain number, letter, _, -, ., +, @ and space. - May not start
|
rules: - May contain number, letter, _, -, ., +, @ and space. - May not
|
||||||
with - or space. - May not end with space.
|
start with - or space. - May not end with space.
|
||||||
|
|
||||||
Starting with rclone version 1.61, any Unicode numbers and letters are
|
Starting with rclone version 1.61, any Unicode numbers and letters are
|
||||||
allowed, while in older versions it was limited to plain ASCII (0-9,
|
allowed, while in older versions it was limited to plain ASCII (0-9,
|
||||||
|
@ -16096,28 +16097,49 @@ into regular expressions.
|
||||||
|
|
||||||
Filter pattern examples
|
Filter pattern examples
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------
|
||||||
Description Pattern Matches Does not match
|
Description Pattern Matches Does not match
|
||||||
--------------- ---------------- ------------------------------- ------------------
|
------------------- ---------------- ------------------------------- ------------------------
|
||||||
Wildcard *.jpg /file.jpg /file.png
|
Wildcard *.jpg /file.jpg /file.png
|
||||||
|
|
||||||
/dir/file.jpg /dir/file.png
|
/dir/file.jpg /dir/file.png
|
||||||
|
|
||||||
Rooted /*.jpg /file.jpg /file.png
|
Rooted /*.jpg /file.jpg /file.png
|
||||||
|
|
||||||
/file2.jpg /dir/file.jpg
|
/file2.jpg /dir/file.jpg
|
||||||
|
|
||||||
Alternates *.{jpg,png} /file.jpg /file.gif
|
Alternates *.{jpg,png} /file.jpg /file.gif
|
||||||
|
|
||||||
/dir/file.png /dir/file.gif
|
/dir/file.png /dir/file.gif
|
||||||
|
|
||||||
Path Wildcard dir/** /dir/anyfile file.png
|
Path Wildcard dir/** /dir/anyfile file.png
|
||||||
|
|
||||||
/subdir/dir/subsubdir/anyfile /subdir/file.png
|
/subdir/dir/subsubdir/anyfile /subdir/file.png
|
||||||
|
|
||||||
Any Char *.t?t /file.txt /file.qxt
|
Any Char *.t?t /file.txt /file.qxt
|
||||||
|
|
||||||
/dir/file.tzt /dir/file.png
|
/dir/file.tzt /dir/file.png
|
||||||
|
|
||||||
Range *.[a-z] /file.a /file.0
|
Range *.[a-z] /file.a /file.0
|
||||||
|
|
||||||
/dir/file.b /dir/file.1
|
/dir/file.b /dir/file.1
|
||||||
|
|
||||||
Escape *.\?\?\? /file.??? /file.abc
|
Escape *.\?\?\? /file.??? /file.abc
|
||||||
|
|
||||||
/dir/file.??? /dir/file.def
|
/dir/file.??? /dir/file.def
|
||||||
|
|
||||||
Class *.\d\d\d /file.012 /file.abc
|
Class *.\d\d\d /file.012 /file.abc
|
||||||
|
|
||||||
/dir/file.345 /dir/file.def
|
/dir/file.345 /dir/file.def
|
||||||
|
|
||||||
Regexp *.{{jpe?g}} /file.jpeg /file.png
|
Regexp *.{{jpe?g}} /file.jpeg /file.png
|
||||||
|
|
||||||
/dir/file.jpg /dir/file.jpeeg
|
/dir/file.jpg /dir/file.jpeeg
|
||||||
|
|
||||||
Rooted Regexp /{{.*\.jpe?g}} /file.jpeg /file.png
|
Rooted Regexp /{{.*\.jpe?g}} /file.jpeg /file.png
|
||||||
|
|
||||||
/file.jpg /dir/file.jpg
|
/file.jpg /dir/file.jpg
|
||||||
|
---------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
How filter rules are applied to files
|
How filter rules are applied to files
|
||||||
|
|
||||||
|
@ -19242,58 +19264,121 @@ Features
|
||||||
|
|
||||||
Here is an overview of the major features of each cloud storage system.
|
Here is an overview of the major features of each cloud storage system.
|
||||||
|
|
||||||
Name Hash ModTime Case Insensitive Duplicate Files MIME Type Metadata
|
--------------------------------------------------------------------------------------
|
||||||
------------------------------- ------------------- --------- ------------------ ----------------- ----------- ----------
|
Name Hash ModTime Case Duplicate MIME Metadata
|
||||||
|
Insensitive Files Type
|
||||||
|
----------------- -------------- --------- ------------- ----------- ------ ----------
|
||||||
1Fichier Whirlpool - No Yes R -
|
1Fichier Whirlpool - No Yes R -
|
||||||
|
|
||||||
Akamai Netstorage MD5, SHA256 R/W No No R -
|
Akamai Netstorage MD5, SHA256 R/W No No R -
|
||||||
Amazon S3 (or S3 compatible) MD5 R/W No No R/W RWU
|
|
||||||
|
Amazon S3 (or S3 MD5 R/W No No R/W RWU
|
||||||
|
compatible)
|
||||||
|
|
||||||
Backblaze B2 SHA1 R/W No No R/W -
|
Backblaze B2 SHA1 R/W No No R/W -
|
||||||
|
|
||||||
Box SHA1 R/W Yes No - -
|
Box SHA1 R/W Yes No - -
|
||||||
|
|
||||||
Citrix ShareFile MD5 R/W Yes No - -
|
Citrix ShareFile MD5 R/W Yes No - -
|
||||||
|
|
||||||
Dropbox DBHASH ¹ R Yes No - -
|
Dropbox DBHASH ¹ R Yes No - -
|
||||||
Enterprise File Fabric - R/W Yes No R/W -
|
|
||||||
|
Enterprise File - R/W Yes No R/W -
|
||||||
|
Fabric
|
||||||
|
|
||||||
Files.com MD5, CRC32 DR/W Yes No R -
|
Files.com MD5, CRC32 DR/W Yes No R -
|
||||||
|
|
||||||
FTP - R/W ¹⁰ No No - -
|
FTP - R/W ¹⁰ No No - -
|
||||||
|
|
||||||
Gofile MD5 DR/W No Yes R -
|
Gofile MD5 DR/W No Yes R -
|
||||||
Google Cloud Storage MD5 R/W No No R/W -
|
|
||||||
Google Drive MD5, SHA1, SHA256 DR/W No Yes R/W DRWU
|
Google Cloud MD5 R/W No No R/W -
|
||||||
|
Storage
|
||||||
|
|
||||||
|
Google Drive MD5, SHA1, DR/W No Yes R/W DRWU
|
||||||
|
SHA256
|
||||||
|
|
||||||
Google Photos - - No Yes R -
|
Google Photos - - No Yes R -
|
||||||
|
|
||||||
HDFS - R/W No No - -
|
HDFS - R/W No No - -
|
||||||
|
|
||||||
HiDrive HiDrive ¹² R/W No No - -
|
HiDrive HiDrive ¹² R/W No No - -
|
||||||
|
|
||||||
HTTP - R No No R -
|
HTTP - R No No R -
|
||||||
Internet Archive MD5, SHA1, CRC32 R/W ¹¹ No No - RWU
|
|
||||||
|
Internet Archive MD5, SHA1, R/W ¹¹ No No - RWU
|
||||||
|
CRC32
|
||||||
|
|
||||||
Jottacloud MD5 R/W Yes No R RW
|
Jottacloud MD5 R/W Yes No R RW
|
||||||
|
|
||||||
Koofr MD5 - Yes No - -
|
Koofr MD5 - Yes No - -
|
||||||
|
|
||||||
Linkbox - R No No - -
|
Linkbox - R No No - -
|
||||||
|
|
||||||
Mail.ru Cloud Mailru ⁶ R/W Yes No - -
|
Mail.ru Cloud Mailru ⁶ R/W Yes No - -
|
||||||
|
|
||||||
Mega - - No Yes - -
|
Mega - - No Yes - -
|
||||||
|
|
||||||
Memory MD5 R/W No No - -
|
Memory MD5 R/W No No - -
|
||||||
Microsoft Azure Blob Storage MD5 R/W No No R/W -
|
|
||||||
Microsoft Azure Files Storage MD5 R/W Yes No R/W -
|
Microsoft Azure MD5 R/W No No R/W -
|
||||||
Microsoft OneDrive QuickXorHash ⁵ DR/W Yes No R DRW
|
Blob Storage
|
||||||
|
|
||||||
|
Microsoft Azure MD5 R/W Yes No R/W -
|
||||||
|
Files Storage
|
||||||
|
|
||||||
|
Microsoft QuickXorHash ⁵ DR/W Yes No R DRW
|
||||||
|
OneDrive
|
||||||
|
|
||||||
OpenDrive MD5 R/W Yes Partial ⁸ - -
|
OpenDrive MD5 R/W Yes Partial ⁸ - -
|
||||||
|
|
||||||
OpenStack Swift MD5 R/W No No R/W -
|
OpenStack Swift MD5 R/W No No R/W -
|
||||||
Oracle Object Storage MD5 R/W No No R/W -
|
|
||||||
|
Oracle Object MD5 R/W No No R/W -
|
||||||
|
Storage
|
||||||
|
|
||||||
pCloud MD5, SHA1 ⁷ R/W No No W -
|
pCloud MD5, SHA1 ⁷ R/W No No W -
|
||||||
|
|
||||||
PikPak MD5 R No No R -
|
PikPak MD5 R No No R -
|
||||||
|
|
||||||
Pixeldrain SHA256 R/W No No R RW
|
Pixeldrain SHA256 R/W No No R RW
|
||||||
|
|
||||||
premiumize.me - - Yes No R -
|
premiumize.me - - Yes No R -
|
||||||
|
|
||||||
put.io CRC-32 R/W No Yes R -
|
put.io CRC-32 R/W No Yes R -
|
||||||
|
|
||||||
Proton Drive SHA1 R/W No No R -
|
Proton Drive SHA1 R/W No No R -
|
||||||
|
|
||||||
QingStor MD5 - ⁹ No No R/W -
|
QingStor MD5 - ⁹ No No R/W -
|
||||||
Quatrix by Maytech - R/W No No - -
|
|
||||||
|
Quatrix by - R/W No No - -
|
||||||
|
Maytech
|
||||||
|
|
||||||
Seafile - - No No - -
|
Seafile - - No No - -
|
||||||
|
|
||||||
SFTP MD5, SHA1 ² DR/W Depends No - -
|
SFTP MD5, SHA1 ² DR/W Depends No - -
|
||||||
|
|
||||||
Sia - - No No - -
|
Sia - - No No - -
|
||||||
|
|
||||||
SMB - R/W Yes No - -
|
SMB - R/W Yes No - -
|
||||||
|
|
||||||
SugarSync - - No No - -
|
SugarSync - - No No - -
|
||||||
|
|
||||||
Storj - R No No - -
|
Storj - R No No - -
|
||||||
|
|
||||||
Uloz.to MD5, SHA256 ¹³ - No Yes - -
|
Uloz.to MD5, SHA256 ¹³ - No Yes - -
|
||||||
|
|
||||||
Uptobox - - No Yes - -
|
Uptobox - - No Yes - -
|
||||||
|
|
||||||
WebDAV MD5, SHA1 ³ R ⁴ Depends No - -
|
WebDAV MD5, SHA1 ³ R ⁴ Depends No - -
|
||||||
|
|
||||||
Yandex Disk MD5 R/W No No R -
|
Yandex Disk MD5 R/W No No R -
|
||||||
|
|
||||||
Zoho WorkDrive - - No No - -
|
Zoho WorkDrive - - No No - -
|
||||||
The local filesystem All DR/W Depends No - DRWU
|
|
||||||
|
The local All DR/W Depends No - DRWU
|
||||||
|
filesystem
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
¹ Dropbox supports its own custom hash. This is an SHA256 sum of all the
|
¹ Dropbox supports its own custom hash. This is an SHA256 sum of all the
|
||||||
4 MiB block SHA256s.
|
4 MiB block SHA256s.
|
||||||
|
@ -20081,7 +20166,7 @@ Flags for general networking and HTTP stuff.
|
||||||
--tpslimit float Limit HTTP transactions per second to this
|
--tpslimit float Limit HTTP transactions per second to this
|
||||||
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
||||||
--use-cookies Enable session cookiejar
|
--use-cookies Enable session cookiejar
|
||||||
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2")
|
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2-beta.8331.25cf42493.feature/add-frostfs-support")
|
||||||
|
|
||||||
Performance
|
Performance
|
||||||
|
|
||||||
|
@ -20488,6 +20573,21 @@ Backend-only flags (these can be set in the config file also).
|
||||||
--filescom-password string The password used to authenticate with Files.com (obscured)
|
--filescom-password string The password used to authenticate with Files.com (obscured)
|
||||||
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
||||||
--filescom-username string The username used to authenticate with Files.com
|
--filescom-username string The username used to authenticate with Files.com
|
||||||
|
--frostfs-address string Address of account
|
||||||
|
--frostfs-ape-cache-invalidation-duration Duration APE cache invalidation duration (default 8s)
|
||||||
|
--frostfs-ape-cache-invalidation-timeout Duration APE cache invalidation timeout (default 24s)
|
||||||
|
--frostfs-ape-chain-check-interval Duration The interval for verifying that the APE chain is saved in FrostFS (default 500ms)
|
||||||
|
--frostfs-connection-timeout Duration FrostFS connection timeout (default 4s)
|
||||||
|
--frostfs-container-creation-policy string Container creation policy for new containers (default "private")
|
||||||
|
--frostfs-description string Description of the remote
|
||||||
|
--frostfs-endpoint string Endpoints to connect to FrostFS node
|
||||||
|
--frostfs-password string Password to decrypt wallet
|
||||||
|
--frostfs-placement-policy string Placement policy for new containers (default "REP 3")
|
||||||
|
--frostfs-rebalance-interval Duration FrostFS rebalance connections interval (default 15s)
|
||||||
|
--frostfs-request-timeout Duration FrostFS request timeout (default 12s)
|
||||||
|
--frostfs-rpc-endpoint string Endpoint to connect to Neo rpc node
|
||||||
|
--frostfs-session-expiration int FrostFS session expiration epoch (default 4294967295)
|
||||||
|
--frostfs-wallet string Path to wallet
|
||||||
--ftp-ask-password Allow asking for FTP password when needed
|
--ftp-ask-password Allow asking for FTP password when needed
|
||||||
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
||||||
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
||||||
|
@ -22714,7 +22814,7 @@ include-style filters for Windows user directories below.
|
||||||
Filters file writing guidelines
|
Filters file writing guidelines
|
||||||
|
|
||||||
1. Begin with excluding directory trees:
|
1. Begin with excluding directory trees:
|
||||||
- e.g. `- /AppData/`
|
- e.g. - /AppData/
|
||||||
- ** on the end is not necessary. Once a given directory level is
|
- ** on the end is not necessary. Once a given directory level is
|
||||||
excluded then everything beneath it won't be looked at by
|
excluded then everything beneath it won't be looked at by
|
||||||
rclone.
|
rclone.
|
||||||
|
@ -22729,22 +22829,22 @@ Filters file writing guidelines
|
||||||
-- or --
|
-- or --
|
||||||
- Exclude select directories and therefore include everything else
|
- Exclude select directories and therefore include everything else
|
||||||
3. Include select directories:
|
3. Include select directories:
|
||||||
- Add lines like: `+ /Documents/PersonalFiles/**` to select which
|
- Add lines like: + /Documents/PersonalFiles/** to select which
|
||||||
directories to include in the sync.
|
directories to include in the sync.
|
||||||
- ** on the end specifies to include the full depth of the
|
- ** on the end specifies to include the full depth of the
|
||||||
specified tree.
|
specified tree.
|
||||||
- With Include-style filters, files at the Path1/Path2 root are
|
- With Include-style filters, files at the Path1/Path2 root are
|
||||||
not included. They may be included with `+ /*`.
|
not included. They may be included with + /*.
|
||||||
- Place RCLONE_TEST files within these included directory trees.
|
- Place RCLONE_TEST files within these included directory trees.
|
||||||
They will only be looked for in these directory trees.
|
They will only be looked for in these directory trees.
|
||||||
- Finish by excluding everything else by adding `- **` at the end
|
- Finish by excluding everything else by adding - ** at the end of
|
||||||
of the filters file.
|
the filters file.
|
||||||
- Disregard step 4.
|
- Disregard step 4.
|
||||||
4. Exclude select directories:
|
4. Exclude select directories:
|
||||||
- Add more lines like in step 1. For example:
|
- Add more lines like in step 1. For example:
|
||||||
-/Desktop/tempfiles/, or `- /testdir/. Again, a**` on the end
|
-/Desktop/tempfiles/, or - /testdir/. Again, a ** on the end is
|
||||||
is not necessary.
|
not necessary.
|
||||||
- Do not add a `- **` in the file. Without this line, everything
|
- Do not add a - ** in the file. Without this line, everything
|
||||||
will be included that has not been explicitly excluded.
|
will be included that has not been explicitly excluded.
|
||||||
- Disregard step 3.
|
- Disregard step 3.
|
||||||
|
|
||||||
|
@ -22769,7 +22869,7 @@ This Windows include-style example is based on the sync root (Path1) set
|
||||||
to C:\Users\MyLogin. The strategy is to select specific directories to
|
to C:\Users\MyLogin. The strategy is to select specific directories to
|
||||||
be synched with a network drive (Path2).
|
be synched with a network drive (Path2).
|
||||||
|
|
||||||
- `- /AppData/` excludes an entire tree of Windows stored stuff that
|
- - /AppData/ excludes an entire tree of Windows stored stuff that
|
||||||
need not be synched. In my case, AppData has >11 GB of stuff I don't
|
need not be synched. In my case, AppData has >11 GB of stuff I don't
|
||||||
care about, and there are some subdirectories beneath AppData that
|
care about, and there are some subdirectories beneath AppData that
|
||||||
are not accessible to my user login, resulting in bisync critical
|
are not accessible to my user login, resulting in bisync critical
|
||||||
|
@ -22778,11 +22878,12 @@ be synched with a network drive (Path2).
|
||||||
NTUSER at C:\Users\MyLogin. These files may be dynamic, locked, and
|
NTUSER at C:\Users\MyLogin. These files may be dynamic, locked, and
|
||||||
are generally don't care.
|
are generally don't care.
|
||||||
- There are just a few directories with my data that I do want
|
- There are just a few directories with my data that I do want
|
||||||
synched, in the form of `+
|
synched, in the form of + /<path>. By selecting only the directory
|
||||||
/. By selecting only the directory trees I want to avoid the dozen plus directories that various apps make atC:`.
|
trees I want to avoid the dozen plus directories that various apps
|
||||||
|
make at C:\Users\MyLogin\Documents.
|
||||||
- Include files in the root of the sync point, C:\Users\MyLogin, by
|
- Include files in the root of the sync point, C:\Users\MyLogin, by
|
||||||
adding the `+ /*` line.
|
adding the + /* line.
|
||||||
- This is an Include-style filters file, therefore it ends with `- **`
|
- This is an Include-style filters file, therefore it ends with - **
|
||||||
which excludes everything not explicitly included.
|
which excludes everything not explicitly included.
|
||||||
|
|
||||||
- /AppData/
|
- /AppData/
|
||||||
|
@ -22809,14 +22910,14 @@ This noise can be quashed by adding --quiet to the bisync command line.
|
||||||
Example exclude-style filters files for use with Dropbox
|
Example exclude-style filters files for use with Dropbox
|
||||||
|
|
||||||
- Dropbox disallows synching the listed temporary and
|
- Dropbox disallows synching the listed temporary and
|
||||||
configuration/data files. The `- ` filters exclude these files where
|
configuration/data files. The - <filename> filters exclude these
|
||||||
ever they may occur in the sync tree. Consider adding similar
|
files where ever they may occur in the sync tree. Consider adding
|
||||||
exclusions for file types you don't need to sync, such as core dump
|
similar exclusions for file types you don't need to sync, such as
|
||||||
and software build files.
|
core dump and software build files.
|
||||||
- bisync testing creates /testdir/ at the top level of the sync tree,
|
- bisync testing creates /testdir/ at the top level of the sync tree,
|
||||||
and usually deletes the tree after the test. If a normal sync should
|
and usually deletes the tree after the test. If a normal sync should
|
||||||
run while the /testdir/ tree exists the --check-access phase may
|
run while the /testdir/ tree exists the --check-access phase may
|
||||||
fail due to unbalanced RCLONE_TEST files. The `- /testdir/` filter
|
fail due to unbalanced RCLONE_TEST files. The - /testdir/ filter
|
||||||
blocks this tree from being synched. You don't need this exclusion
|
blocks this tree from being synched. You don't need this exclusion
|
||||||
if you are not doing bisync development testing.
|
if you are not doing bisync development testing.
|
||||||
- Everything else beneath the Path1/Path2 root will be synched.
|
- Everything else beneath the Path1/Path2 root will be synched.
|
||||||
|
@ -23190,10 +23291,14 @@ Notes about testing
|
||||||
these directories when validating and debugging a given test. These
|
these directories when validating and debugging a given test. These
|
||||||
directories will be flushed before running another test, independent
|
directories will be flushed before running another test, independent
|
||||||
of the -no-cleanup usage.
|
of the -no-cleanup usage.
|
||||||
- You will likely want to add `-
|
- You will likely want to add - /testdir/ to your normal bisync
|
||||||
/testdir/to your normal bisync--filters-fileso that normal syncs do not attempt to sync the test temporary directories, which may haveRCLONE_TESTmiscompares in some testcases which would otherwise trip the--check-accesssystem. The--check-accessmechanism is hard-coded to ignoreRCLONE_TESTfiles beneathbisync/testdata`,
|
--filters-file so that normal syncs do not attempt to sync the test
|
||||||
so the test cases may reside on the synched tree even if there are
|
temporary directories, which may have RCLONE_TEST miscompares in
|
||||||
check file mismatches in the test tree.
|
some testcases which would otherwise trip the --check-access system.
|
||||||
|
The --check-access mechanism is hard-coded to ignore RCLONE_TEST
|
||||||
|
files beneath bisync/testdata, so the test cases may reside on the
|
||||||
|
synched tree even if there are check file mismatches in the test
|
||||||
|
tree.
|
||||||
- Some Dropbox tests can fail, notably printing the following message:
|
- Some Dropbox tests can fail, notably printing the following message:
|
||||||
src and dst identical but can't set mod time without deleting and re-uploading
|
src and dst identical but can't set mod time without deleting and re-uploading
|
||||||
This is expected and happens due to the way Dropbox handles
|
This is expected and happens due to the way Dropbox handles
|
||||||
|
@ -23340,8 +23445,8 @@ characters (which factors into load time and RAM required).
|
||||||
References
|
References
|
||||||
|
|
||||||
rclone's bisync implementation was derived from the rclonesync-V2
|
rclone's bisync implementation was derived from the rclonesync-V2
|
||||||
project, including documentation and test mechanisms, with
|
project, including documentation and test mechanisms, with @cjnaz's full
|
||||||
[@cjnaz](https://github.com/cjnaz)'s full support and encouragement.
|
support and encouragement.
|
||||||
|
|
||||||
rclone bisync is similar in nature to a range of other projects:
|
rclone bisync is similar in nature to a range of other projects:
|
||||||
|
|
||||||
|
@ -33978,6 +34083,472 @@ Properties:
|
||||||
- Type: string
|
- Type: string
|
||||||
- Required: false
|
- Required: false
|
||||||
|
|
||||||
|
FrostFS
|
||||||
|
|
||||||
|
Rclone FrostFS support is provided using the
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go package
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
|
||||||
|
To create an FrostFS configuration named remote, run
|
||||||
|
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
Rclone config guides you through an interactive setup process. A minimal
|
||||||
|
rclone FrostFS remote definition only requires endpoint and path to
|
||||||
|
FrostFS user wallet.
|
||||||
|
|
||||||
|
No remotes found, make a new one?
|
||||||
|
n) New remote
|
||||||
|
s) Set configuration password
|
||||||
|
q) Quit config
|
||||||
|
n/s/q> n
|
||||||
|
|
||||||
|
Enter name for new remote.
|
||||||
|
name> remote
|
||||||
|
|
||||||
|
Option Storage.
|
||||||
|
Type of storage to configure.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / 1Fichier
|
||||||
|
\ (fichier)
|
||||||
|
2 / Akamai NetStorage
|
||||||
|
\ (netstorage)
|
||||||
|
3 / Alias for an existing remote
|
||||||
|
\ (alias)
|
||||||
|
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
|
||||||
|
\ (s3)
|
||||||
|
5 / Backblaze B2
|
||||||
|
\ (b2)
|
||||||
|
6 / Better checksums for other remotes
|
||||||
|
\ (hasher)
|
||||||
|
7 / Box
|
||||||
|
\ (box)
|
||||||
|
8 / Cache a remote
|
||||||
|
\ (cache)
|
||||||
|
9 / Citrix Sharefile
|
||||||
|
\ (sharefile)
|
||||||
|
10 / Combine several remotes into one
|
||||||
|
\ (combine)
|
||||||
|
11 / Compress a remote
|
||||||
|
\ (compress)
|
||||||
|
12 / Distributed, decentralized object storage FrostFS
|
||||||
|
\ (frostfs)
|
||||||
|
13 / Dropbox
|
||||||
|
\ (dropbox)
|
||||||
|
14 / Encrypt/Decrypt a remote
|
||||||
|
\ (crypt)
|
||||||
|
15 / Enterprise File Fabric
|
||||||
|
\ (filefabric)
|
||||||
|
16 / FTP
|
||||||
|
\ (ftp)
|
||||||
|
17 / Files.com
|
||||||
|
\ (filescom)
|
||||||
|
18 / Gofile
|
||||||
|
\ (gofile)
|
||||||
|
19 / Google Cloud Storage (this is not Google Drive)
|
||||||
|
\ (google cloud storage)
|
||||||
|
20 / Google Drive
|
||||||
|
\ (drive)
|
||||||
|
21 / Google Photos
|
||||||
|
\ (google photos)
|
||||||
|
22 / HTTP
|
||||||
|
\ (http)
|
||||||
|
23 / Hadoop distributed file system
|
||||||
|
\ (hdfs)
|
||||||
|
24 / HiDrive
|
||||||
|
\ (hidrive)
|
||||||
|
25 / ImageKit.io
|
||||||
|
\ (imagekit)
|
||||||
|
26 / In memory object storage system.
|
||||||
|
\ (memory)
|
||||||
|
27 / Internet Archive
|
||||||
|
\ (internetarchive)
|
||||||
|
28 / Jottacloud
|
||||||
|
\ (jottacloud)
|
||||||
|
29 / Koofr, Digi Storage and other Koofr-compatible storage providers
|
||||||
|
\ (koofr)
|
||||||
|
30 / Linkbox
|
||||||
|
\ (linkbox)
|
||||||
|
31 / Local Disk
|
||||||
|
\ (local)
|
||||||
|
32 / Mail.ru Cloud
|
||||||
|
\ (mailru)
|
||||||
|
33 / Mega
|
||||||
|
\ (mega)
|
||||||
|
34 / Microsoft Azure Blob Storage
|
||||||
|
\ (azureblob)
|
||||||
|
35 / Microsoft Azure Files
|
||||||
|
\ (azurefiles)
|
||||||
|
36 / Microsoft OneDrive
|
||||||
|
\ (onedrive)
|
||||||
|
37 / OpenDrive
|
||||||
|
\ (opendrive)
|
||||||
|
38 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
|
||||||
|
\ (swift)
|
||||||
|
39 / Oracle Cloud Infrastructure Object Storage
|
||||||
|
\ (oracleobjectstorage)
|
||||||
|
40 / Pcloud
|
||||||
|
\ (pcloud)
|
||||||
|
41 / PikPak
|
||||||
|
\ (pikpak)
|
||||||
|
42 / Pixeldrain Filesystem
|
||||||
|
\ (pixeldrain)
|
||||||
|
43 / Proton Drive
|
||||||
|
\ (protondrive)
|
||||||
|
44 / Put.io
|
||||||
|
\ (putio)
|
||||||
|
45 / QingCloud Object Storage
|
||||||
|
\ (qingstor)
|
||||||
|
46 / Quatrix by Maytech
|
||||||
|
\ (quatrix)
|
||||||
|
47 / SMB / CIFS
|
||||||
|
\ (smb)
|
||||||
|
48 / SSH/SFTP
|
||||||
|
\ (sftp)
|
||||||
|
49 / Sia Decentralized Cloud
|
||||||
|
\ (sia)
|
||||||
|
50 / Storj Decentralized Cloud Storage
|
||||||
|
\ (storj)
|
||||||
|
51 / Sugarsync
|
||||||
|
\ (sugarsync)
|
||||||
|
52 / Transparently chunk/split large files
|
||||||
|
\ (chunker)
|
||||||
|
53 / Uloz.to
|
||||||
|
\ (ulozto)
|
||||||
|
54 / Union merges the contents of several upstream fs
|
||||||
|
\ (union)
|
||||||
|
55 / Uptobox
|
||||||
|
\ (uptobox)
|
||||||
|
56 / WebDAV
|
||||||
|
\ (webdav)
|
||||||
|
57 / Yandex Disk
|
||||||
|
\ (yandex)
|
||||||
|
58 / Zoho
|
||||||
|
\ (zoho)
|
||||||
|
59 / premiumize.me
|
||||||
|
\ (premiumizeme)
|
||||||
|
60 / seafile
|
||||||
|
\ (seafile)
|
||||||
|
Storage> frostfs
|
||||||
|
|
||||||
|
Option endpoint.
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / One endpoint.
|
||||||
|
\ (s01.frostfs.devenv:8080)
|
||||||
|
2 / Multiple endpoints to form pool.
|
||||||
|
\ (s01.frostfs.devenv:8080 s02.frostfs.devenv:8080)
|
||||||
|
3 / Multiple endpoints with priority (less value is higher priority). Until s01 is healthy all request will be send to it.
|
||||||
|
\ (s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2)
|
||||||
|
4 / Multiple endpoints with priority and weights. After s01 is unhealthy requests will be send to s02 and s03 in proportions 10% and 90% respectively.
|
||||||
|
\ (s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9)
|
||||||
|
endpoint> s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
|
||||||
|
Option connection_timeout.
|
||||||
|
FrostFS connection timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (4s).
|
||||||
|
connection_timeout>
|
||||||
|
|
||||||
|
Option request_timeout.
|
||||||
|
FrostFS request timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (4s).
|
||||||
|
request_timeout>
|
||||||
|
|
||||||
|
Option rebalance_interval.
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
Enter a value of type Duration. Press Enter for the default (15s).
|
||||||
|
rebalance_interval>
|
||||||
|
|
||||||
|
Option session_expiration.
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
Enter a signed integer. Press Enter for the default (4294967295).
|
||||||
|
session_expiration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_duration.
|
||||||
|
APE cache invalidation duration
|
||||||
|
Enter a value of type Duration. Press Enter for the default (8s).
|
||||||
|
ape_cache_invalidation_duration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_timeout.
|
||||||
|
APE cache invalidation timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (16s).
|
||||||
|
ape_cache_invalidation_timeout>
|
||||||
|
|
||||||
|
Option ape_chain_check_interval.
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
Enter a value of type Duration. Press Enter for the default (500ms).
|
||||||
|
ape_chain_check_interval>
|
||||||
|
|
||||||
|
Option rpc_endpoint.
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
rpc_endpoint>
|
||||||
|
|
||||||
|
Option wallet.
|
||||||
|
Path to wallet
|
||||||
|
Enter a value.
|
||||||
|
wallet> /wallets/wallet.conf
|
||||||
|
|
||||||
|
Option address.
|
||||||
|
Address of account
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
address>
|
||||||
|
|
||||||
|
Option password.
|
||||||
|
Password to decrypt wallet
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
password>
|
||||||
|
|
||||||
|
Option placement_policy.
|
||||||
|
Placement policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (REP 3).
|
||||||
|
1 / Container will have 3 replicas
|
||||||
|
\ (REP 3)
|
||||||
|
placement_policy> REP 1
|
||||||
|
|
||||||
|
Option container_creation_policy.
|
||||||
|
Container creation policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (private).
|
||||||
|
1 / Public container, anyone can read and write
|
||||||
|
\ (public-read-write)
|
||||||
|
2 / Public container, owner can read and write, others can only read
|
||||||
|
\ (public-read)
|
||||||
|
3 / Private container, only owner has access to it
|
||||||
|
\ (private)
|
||||||
|
container_creation_policy>
|
||||||
|
|
||||||
|
Edit advanced config?
|
||||||
|
y) Yes
|
||||||
|
n) No (default)
|
||||||
|
y/n> n
|
||||||
|
|
||||||
|
Configuration complete.
|
||||||
|
Options:
|
||||||
|
- type: frostfs
|
||||||
|
- endpoint: s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
- password: M@zPGpWDravchenko/develop/go/playground/play_with_ape/cfg/wallet_akrav.js
|
||||||
|
- placement_policy: REP 1
|
||||||
|
Keep this "remote" remote?
|
||||||
|
y) Yes this is OK (default)
|
||||||
|
e) Edit this remote
|
||||||
|
d) Delete this remote
|
||||||
|
y/e/d> y
|
||||||
|
|
||||||
|
As a remote root directory, you can use either the container identifier
|
||||||
|
or its user-friendly name. If you choose to use a container name, rclone
|
||||||
|
will create a new container with that name when it's used for the first
|
||||||
|
time.
|
||||||
|
|
||||||
|
For example, both of the following commands would be valid if there was
|
||||||
|
a ~/test-copy directory and a container with the identifier
|
||||||
|
23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf:
|
||||||
|
|
||||||
|
rclone copy ~/test-copy remote:23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf/test-copy
|
||||||
|
rclone copy ~/test-copy remote:container-name/test-copy
|
||||||
|
|
||||||
|
Standard options
|
||||||
|
|
||||||
|
Here are the Standard options specific to frostfs (Distributed,
|
||||||
|
decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
--frostfs-endpoint
|
||||||
|
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
- Examples:
|
||||||
|
- "s01.frostfs.devenv:8080"
|
||||||
|
- One endpoint.
|
||||||
|
- "s01.frostfs.devenv:8080 s02.frostfs.devenv:8080"
|
||||||
|
- Multiple endpoints to form pool.
|
||||||
|
- "s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2"
|
||||||
|
- Multiple endpoints with priority (lower value has higher
|
||||||
|
priority). Until s01 is healthy, all requests will be sent
|
||||||
|
to it.
|
||||||
|
- "s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1
|
||||||
|
s03.frostfs.devenv:8080,2,9"
|
||||||
|
- Multiple endpoints with priority and weights. After the s01
|
||||||
|
endpoint is unhealthy, requests will be sent to the s02 and
|
||||||
|
s03 endpoints in proportions of 10% and 90%, respectively.
|
||||||
|
|
||||||
|
--frostfs-connection-timeout
|
||||||
|
|
||||||
|
FrostFS connection timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: connection_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONNECTION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 4s
|
||||||
|
|
||||||
|
--frostfs-request-timeout
|
||||||
|
|
||||||
|
FrostFS request timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: request_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_REQUEST_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 12s
|
||||||
|
|
||||||
|
--frostfs-rebalance-interval
|
||||||
|
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rebalance_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_REBALANCE_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 15s
|
||||||
|
|
||||||
|
--frostfs-session-expiration
|
||||||
|
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: session_expiration
|
||||||
|
- Env Var: RCLONE_FROSTFS_SESSION_EXPIRATION
|
||||||
|
- Type: int
|
||||||
|
- Default: 4294967295
|
||||||
|
|
||||||
|
--frostfs-ape-cache-invalidation-duration
|
||||||
|
|
||||||
|
APE cache invalidation duration
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_duration
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_DURATION
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 8s
|
||||||
|
|
||||||
|
--frostfs-ape-cache-invalidation-timeout
|
||||||
|
|
||||||
|
APE cache invalidation timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 24s
|
||||||
|
|
||||||
|
--frostfs-ape-chain-check-interval
|
||||||
|
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_chain_check_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CHAIN_CHECK_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 500ms
|
||||||
|
|
||||||
|
--frostfs-rpc-endpoint
|
||||||
|
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rpc_endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_RPC_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
--frostfs-wallet
|
||||||
|
|
||||||
|
Path to wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: wallet
|
||||||
|
- Env Var: RCLONE_FROSTFS_WALLET
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
|
||||||
|
--frostfs-address
|
||||||
|
|
||||||
|
Address of account
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: address
|
||||||
|
- Env Var: RCLONE_FROSTFS_ADDRESS
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
--frostfs-password
|
||||||
|
|
||||||
|
Password to decrypt wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: password
|
||||||
|
- Env Var: RCLONE_FROSTFS_PASSWORD
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
--frostfs-placement-policy
|
||||||
|
|
||||||
|
Placement policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: placement_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_PLACEMENT_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "REP 3"
|
||||||
|
- Examples:
|
||||||
|
- "REP 3"
|
||||||
|
- Container will have 3 replicas
|
||||||
|
|
||||||
|
--frostfs-container-creation-policy
|
||||||
|
|
||||||
|
Container creation policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: container_creation_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONTAINER_CREATION_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "private"
|
||||||
|
- Examples:
|
||||||
|
- "public-read-write"
|
||||||
|
- Public container, anyone can read and write
|
||||||
|
- "public-read"
|
||||||
|
- Public container, owner can read and write, others can only
|
||||||
|
read
|
||||||
|
- "private"
|
||||||
|
- Private container, only owner has access to it
|
||||||
|
|
||||||
|
Advanced options
|
||||||
|
|
||||||
|
Here are the Advanced options specific to frostfs (Distributed,
|
||||||
|
decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
--frostfs-description
|
||||||
|
|
||||||
|
Description of the remote.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: description
|
||||||
|
- Env Var: RCLONE_FROSTFS_DESCRIPTION
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
FTP
|
FTP
|
||||||
|
|
||||||
FTP is the File Transfer Protocol. Rclone FTP support is provided using
|
FTP is the File Transfer Protocol. Rclone FTP support is provided using
|
||||||
|
@ -34097,13 +34668,12 @@ even in Windows Command Prompt:
|
||||||
rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM
|
rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM
|
||||||
rclone lsf :ftp,host=speedtest.tele2.net,user=anonymous,pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM:
|
rclone lsf :ftp,host=speedtest.tele2.net,user=anonymous,pass=IXs2wc8OJOz7SYLBk47Ji1rHTmxM:
|
||||||
|
|
||||||
Implicit TLS
|
Implicit TLSutil.go
|
||||||
|
|
||||||
Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to be
|
Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to be
|
||||||
enabled in the FTP backend config for the remote, or with --ftp-tls. The
|
enabled in the FTP backend config for the remote, or with --ftp-tls. The
|
||||||
default FTPS port is 990, not 21 and can be set with --ftp-port.
|
default FTPS port is 990, not 21 and can be set with --ftp-port. util.go
|
||||||
|
### Restricted filename characters
|
||||||
Restricted filename characters
|
|
||||||
|
|
||||||
In addition to the default restricted characters set the following
|
In addition to the default restricted characters set the following
|
||||||
characters are also replaced:
|
characters are also replaced:
|
||||||
|
@ -35946,15 +36516,23 @@ The conversion must result in a file with the same extension when the
|
||||||
|
|
||||||
Here are some examples for allowed and prohibited conversions.
|
Here are some examples for allowed and prohibited conversions.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
export-formats import-formats Upload Ext Document Ext Allowed
|
export-formats import-formats Upload Ext Document Ext Allowed
|
||||||
---------------- ---------------- ------------ -------------- ---------
|
----------------- ----------------- ------------ -------------- ---------
|
||||||
odt odt odt odt Yes
|
odt odt odt odt Yes
|
||||||
|
|
||||||
odt docx,odt odt odt Yes
|
odt docx,odt odt odt Yes
|
||||||
|
|
||||||
docx docx docx Yes
|
docx docx docx Yes
|
||||||
|
|
||||||
odt odt docx No
|
odt odt docx No
|
||||||
|
|
||||||
odt,docx docx,odt docx odt No
|
odt,docx docx,odt docx odt No
|
||||||
|
|
||||||
docx,odt docx,odt docx docx Yes
|
docx,odt docx,odt docx docx Yes
|
||||||
|
|
||||||
docx,odt docx,odt odt docx No
|
docx,odt docx,odt odt docx No
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
|
||||||
This limitation can be disabled by specifying
|
This limitation can be disabled by specifying
|
||||||
--drive-allow-import-name-change. When using this flag, rclone can
|
--drive-allow-import-name-change. When using this flag, rclone can
|
||||||
|
@ -42575,8 +43153,9 @@ Properties:
|
||||||
|
|
||||||
Upload chunk size.
|
Upload chunk size.
|
||||||
|
|
||||||
Note that this is stored in memory and there may be up to "--transfers"
|
Note that this is stored in memory and there may be up to
|
||||||
* "--azureblob-upload-concurrency" chunks stored at once in memory.
|
"--transfers" * "--azureblob-upload-concurrency" chunks stored at once
|
||||||
|
in memory.
|
||||||
|
|
||||||
Properties:
|
Properties:
|
||||||
|
|
||||||
|
@ -43482,8 +44061,9 @@ Properties:
|
||||||
|
|
||||||
Upload chunk size.
|
Upload chunk size.
|
||||||
|
|
||||||
Note that this is stored in memory and there may be up to "--transfers"
|
Note that this is stored in memory and there may be up to
|
||||||
* "--azurefile-upload-concurrency" chunks stored at once in memory.
|
"--transfers" * "--azurefile-upload-concurrency" chunks stored at once
|
||||||
|
in memory.
|
||||||
|
|
||||||
Properties:
|
Properties:
|
||||||
|
|
||||||
|
@ -47846,8 +48426,9 @@ Chunk size for multipart uploads.
|
||||||
|
|
||||||
Large files will be uploaded in chunks of this size.
|
Large files will be uploaded in chunks of this size.
|
||||||
|
|
||||||
Note that this is stored in memory and there may be up to "--transfers"
|
Note that this is stored in memory and there may be up to
|
||||||
* "--pikpak-upload-concurrency" chunks stored at once in memory.
|
"--transfers" * "--pikpak-upload-concurrency" chunks stored at once in
|
||||||
|
memory.
|
||||||
|
|
||||||
If you are transferring large files over high-speed links and you have
|
If you are transferring large files over high-speed links and you have
|
||||||
enough memory, then increasing this will speed up the transfers.
|
enough memory, then increasing this will speed up the transfers.
|
||||||
|
@ -62767,7 +63348,7 @@ Twitter
|
||||||
|
|
||||||
You can also follow Nick on twitter for rclone announcements:
|
You can also follow Nick on twitter for rclone announcements:
|
||||||
|
|
||||||
- [@njcw](https://twitter.com/njcw)
|
- @njcw
|
||||||
|
|
||||||
Email
|
Email
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
_ "github.com/rclone/rclone/backend/fichier"
|
_ "github.com/rclone/rclone/backend/fichier"
|
||||||
_ "github.com/rclone/rclone/backend/filefabric"
|
_ "github.com/rclone/rclone/backend/filefabric"
|
||||||
_ "github.com/rclone/rclone/backend/filescom"
|
_ "github.com/rclone/rclone/backend/filescom"
|
||||||
|
_ "github.com/rclone/rclone/backend/frostfs"
|
||||||
_ "github.com/rclone/rclone/backend/ftp"
|
_ "github.com/rclone/rclone/backend/ftp"
|
||||||
_ "github.com/rclone/rclone/backend/gofile"
|
_ "github.com/rclone/rclone/backend/gofile"
|
||||||
_ "github.com/rclone/rclone/backend/googlecloudstorage"
|
_ "github.com/rclone/rclone/backend/googlecloudstorage"
|
||||||
|
|
1231
backend/frostfs/frostfs.go
Normal file
1231
backend/frostfs/frostfs.go
Normal file
File diff suppressed because it is too large
Load diff
16
backend/frostfs/frostfs_test.go
Normal file
16
backend/frostfs/frostfs_test.go
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
package frostfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/rclone/rclone/fstest/fstests"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestIntegration runs integration tests against the remote
|
||||||
|
func TestIntegration(t *testing.T) {
|
||||||
|
fstests.Run(t, &fstests.Opt{
|
||||||
|
RemoteName: "TestFrostFS:",
|
||||||
|
NilObject: (*Object)(nil),
|
||||||
|
SkipInvalidUTF8: true,
|
||||||
|
})
|
||||||
|
}
|
311
backend/frostfs/util.go
Normal file
311
backend/frostfs/util.go
Normal file
|
@ -0,0 +1,311 @@
|
||||||
|
package frostfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container"
|
||||||
|
cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id"
|
||||||
|
resolver "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/ns"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
||||||
|
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user"
|
||||||
|
"git.frostfs.info/TrueCloudLab/policy-engine/pkg/chain"
|
||||||
|
"git.frostfs.info/TrueCloudLab/policy-engine/schema/native"
|
||||||
|
"github.com/nspcc-dev/neo-go/cli/flags"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
||||||
|
|
||||||
|
"github.com/rclone/rclone/fs"
|
||||||
|
)
|
||||||
|
|
||||||
|
type endpointInfo struct {
|
||||||
|
Address string
|
||||||
|
Priority int
|
||||||
|
Weight float64
|
||||||
|
}
|
||||||
|
|
||||||
|
func publicReadWriteCCPRules() []chain.Rule {
|
||||||
|
return []chain.Rule{
|
||||||
|
{
|
||||||
|
Status: chain.Allow, Actions: chain.Actions{
|
||||||
|
Inverted: false,
|
||||||
|
Names: []string{
|
||||||
|
native.MethodPutObject,
|
||||||
|
native.MethodGetObject,
|
||||||
|
native.MethodHeadObject,
|
||||||
|
native.MethodDeleteObject,
|
||||||
|
native.MethodSearchObject,
|
||||||
|
native.MethodRangeObject,
|
||||||
|
native.MethodHashObject,
|
||||||
|
native.MethodPatchObject,
|
||||||
|
},
|
||||||
|
}, Resources: chain.Resources{
|
||||||
|
Inverted: false,
|
||||||
|
Names: []string{native.ResourceFormatRootObjects},
|
||||||
|
}, Any: false},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func privateCCPRules() []chain.Rule {
|
||||||
|
rule := publicReadWriteCCPRules()
|
||||||
|
// The same as public-read-write, except that only the owner is allowed to perform the listed actions
|
||||||
|
rule[0].Condition = []chain.Condition{
|
||||||
|
{
|
||||||
|
Op: chain.CondStringEquals,
|
||||||
|
Kind: chain.KindRequest,
|
||||||
|
Key: native.PropertyKeyActorRole,
|
||||||
|
Value: native.PropertyValueContainerRoleOwner,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return rule
|
||||||
|
}
|
||||||
|
|
||||||
|
func publicReadCCPRules() []chain.Rule {
|
||||||
|
rule := privateCCPRules()
|
||||||
|
// Add a rule that allows other users to perform reading actions.
|
||||||
|
rule = append(rule, chain.Rule{
|
||||||
|
Status: chain.Allow, Actions: chain.Actions{
|
||||||
|
Inverted: false,
|
||||||
|
Names: []string{
|
||||||
|
native.MethodGetObject,
|
||||||
|
native.MethodHeadObject,
|
||||||
|
native.MethodRangeObject,
|
||||||
|
native.MethodHashObject,
|
||||||
|
native.MethodSearchObject,
|
||||||
|
},
|
||||||
|
}, Resources: chain.Resources{
|
||||||
|
Inverted: false,
|
||||||
|
Names: []string{native.ResourceFormatRootObjects},
|
||||||
|
}, Condition: []chain.Condition{
|
||||||
|
{
|
||||||
|
Op: chain.CondStringEquals,
|
||||||
|
Kind: chain.KindRequest,
|
||||||
|
Key: native.PropertyKeyActorRole,
|
||||||
|
Value: native.PropertyValueContainerRoleOthers,
|
||||||
|
},
|
||||||
|
}, Any: false})
|
||||||
|
return rule
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseContainerCreationPolicyString(policyString string) ([]chain.Rule, error) {
|
||||||
|
switch policyString {
|
||||||
|
case "private":
|
||||||
|
return privateCCPRules(), nil
|
||||||
|
case "public-read":
|
||||||
|
return publicReadCCPRules(), nil
|
||||||
|
case "public-read-write":
|
||||||
|
return publicReadWriteCCPRules(), nil
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("invalid container creation policy: %s", policyString)
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseEndpoints(endpointParam string) ([]endpointInfo, error) {
|
||||||
|
var err error
|
||||||
|
expectedLength := -1 // to make sure all endpoints have the same format
|
||||||
|
|
||||||
|
endpoints := strings.Split(strings.TrimSpace(endpointParam), " ")
|
||||||
|
res := make([]endpointInfo, 0, len(endpoints))
|
||||||
|
seen := make(map[string]struct{}, len(endpoints))
|
||||||
|
|
||||||
|
for _, endpoint := range endpoints {
|
||||||
|
endpointInfoSplit := strings.Split(endpoint, ",")
|
||||||
|
address := endpointInfoSplit[0]
|
||||||
|
|
||||||
|
if len(address) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if _, ok := seen[address]; ok {
|
||||||
|
return nil, fmt.Errorf("endpoint '%s' is already defined", address)
|
||||||
|
}
|
||||||
|
seen[address] = struct{}{}
|
||||||
|
|
||||||
|
epInfo := endpointInfo{
|
||||||
|
Address: address,
|
||||||
|
Priority: 1,
|
||||||
|
Weight: 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
if expectedLength == -1 {
|
||||||
|
expectedLength = len(endpointInfoSplit)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(endpointInfoSplit) != expectedLength {
|
||||||
|
return nil, fmt.Errorf("all endpoints must have the same format: '%s'", endpointParam)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch len(endpointInfoSplit) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
epInfo.Priority, err = parsePriority(endpointInfoSplit[1])
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("invalid endpoint '%s': %w", endpoint, err)
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
epInfo.Priority, err = parsePriority(endpointInfoSplit[1])
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("invalid endpoint '%s': %w", endpoint, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
epInfo.Weight, err = parseWeight(endpointInfoSplit[2])
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("invalid endpoint '%s': %w", endpoint, err)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("invalid endpoint format '%s'", endpoint)
|
||||||
|
}
|
||||||
|
|
||||||
|
res = append(res, epInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parsePriority(priorityStr string) (int, error) {
|
||||||
|
priority, err := strconv.Atoi(priorityStr)
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("invalid priority '%s': %w", priorityStr, err)
|
||||||
|
}
|
||||||
|
if priority <= 0 {
|
||||||
|
return 0, fmt.Errorf("priority must be positive '%s'", priorityStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return priority, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseWeight(weightStr string) (float64, error) {
|
||||||
|
weight, err := strconv.ParseFloat(weightStr, 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("invalid weight '%s': %w", weightStr, err)
|
||||||
|
}
|
||||||
|
if weight <= 0 {
|
||||||
|
return 0, fmt.Errorf("weight must be positive '%s'", weightStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return weight, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func createPool(ctx context.Context, key *keys.PrivateKey, cfg *Options) (*pool.Pool, error) {
|
||||||
|
var prm pool.InitParameters
|
||||||
|
prm.SetKey(&key.PrivateKey)
|
||||||
|
prm.SetNodeDialTimeout(time.Duration(cfg.FrostfsConnectionTimeout))
|
||||||
|
prm.SetHealthcheckTimeout(time.Duration(cfg.FrostfsRequestTimeout))
|
||||||
|
prm.SetClientRebalanceInterval(time.Duration(cfg.FrostfsRebalanceInterval))
|
||||||
|
prm.SetSessionExpirationDuration(cfg.FrostfsSessionExpiration)
|
||||||
|
|
||||||
|
nodes, err := getNodePoolParams(cfg.FrostfsEndpoint)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, node := range nodes {
|
||||||
|
prm.AddNode(node)
|
||||||
|
}
|
||||||
|
|
||||||
|
p, err := pool.NewPool(prm)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("create pool: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = p.Dial(ctx); err != nil {
|
||||||
|
return nil, fmt.Errorf("dial pool: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return p, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getNodePoolParams(endpointParam string) ([]pool.NodeParam, error) {
|
||||||
|
endpointInfos, err := parseEndpoints(endpointParam)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("parse endpoints params: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
res := make([]pool.NodeParam, len(endpointInfos))
|
||||||
|
for i, info := range endpointInfos {
|
||||||
|
res[i] = pool.NewNodeParam(info.Priority, info.Address, info.Weight)
|
||||||
|
}
|
||||||
|
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func createNNSResolver(cfg *Options) (*resolver.NNS, error) {
|
||||||
|
if cfg.RPCEndpoint == "" {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var nns resolver.NNS
|
||||||
|
if err := nns.Dial(cfg.RPCEndpoint); err != nil {
|
||||||
|
return nil, fmt.Errorf("dial NNS resolver: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &nns, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getAccount(cfg *Options) (*wallet.Account, error) {
|
||||||
|
w, err := wallet.NewWalletFromFile(cfg.Wallet)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
addr := w.GetChangeAddress()
|
||||||
|
if cfg.Address != "" {
|
||||||
|
addr, err = flags.ParseAddress(cfg.Address)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("invalid address")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
acc := w.GetAccount(addr)
|
||||||
|
err = acc.Decrypt(cfg.Password, w.Scrypt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func newAddress(cnrID cid.ID, objID oid.ID) oid.Address {
|
||||||
|
var addr oid.Address
|
||||||
|
addr.SetContainer(cnrID)
|
||||||
|
addr.SetObject(objID)
|
||||||
|
return addr
|
||||||
|
}
|
||||||
|
|
||||||
|
func formObject(own *user.ID, cnrID cid.ID, name string, header map[string]string) *object.Object {
|
||||||
|
attributes := make([]object.Attribute, 0, 1+len(header))
|
||||||
|
filename := object.NewAttribute()
|
||||||
|
filename.SetKey(object.AttributeFileName)
|
||||||
|
filename.SetValue(name)
|
||||||
|
|
||||||
|
attributes = append(attributes, *filename)
|
||||||
|
|
||||||
|
for key, val := range header {
|
||||||
|
attr := object.NewAttribute()
|
||||||
|
attr.SetKey(key)
|
||||||
|
attr.SetValue(val)
|
||||||
|
attributes = append(attributes, *attr)
|
||||||
|
}
|
||||||
|
|
||||||
|
obj := object.New()
|
||||||
|
obj.SetOwnerID(*own)
|
||||||
|
obj.SetContainerID(cnrID)
|
||||||
|
obj.SetAttributes(attributes...)
|
||||||
|
|
||||||
|
return obj
|
||||||
|
}
|
||||||
|
|
||||||
|
func newDir(cnrID cid.ID, cnr container.Container) *fs.Dir {
|
||||||
|
remote := cnrID.EncodeToString()
|
||||||
|
timestamp := container.CreatedAt(cnr)
|
||||||
|
|
||||||
|
if domain := container.ReadDomain(cnr); domain.Name() != "" {
|
||||||
|
remote = domain.Name()
|
||||||
|
}
|
||||||
|
|
||||||
|
dir := fs.NewDir(remote, timestamp)
|
||||||
|
dir.SetID(cnrID.String())
|
||||||
|
|
||||||
|
return dir
|
||||||
|
}
|
154
backend/frostfs/util_test.go
Normal file
154
backend/frostfs/util_test.go
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
package frostfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseContainerCreationPolicy(t *testing.T) {
|
||||||
|
for i, tc := range []struct {
|
||||||
|
ACLString string
|
||||||
|
ExpectedError bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
ACLString: "",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACLString: "public-ready",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACLString: "public-read",
|
||||||
|
ExpectedError: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACLString: "public-read-write",
|
||||||
|
ExpectedError: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ACLString: "private",
|
||||||
|
ExpectedError: false,
|
||||||
|
},
|
||||||
|
} {
|
||||||
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
|
rules, err := parseContainerCreationPolicyString(tc.ACLString)
|
||||||
|
if tc.ExpectedError {
|
||||||
|
require.Error(t, err)
|
||||||
|
require.Nil(t, rules)
|
||||||
|
} else {
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, rules)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseEndpoints(t *testing.T) {
|
||||||
|
for i, tc := range []struct {
|
||||||
|
EndpointsParam string
|
||||||
|
ExpectedError bool
|
||||||
|
ExpectedResult []endpointInfo
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080",
|
||||||
|
ExpectedResult: []endpointInfo{{
|
||||||
|
Address: "s01.frostfs.devenv:8080",
|
||||||
|
Priority: 1,
|
||||||
|
Weight: 1,
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,2",
|
||||||
|
ExpectedResult: []endpointInfo{{
|
||||||
|
Address: "s01.frostfs.devenv:8080",
|
||||||
|
Priority: 2,
|
||||||
|
Weight: 1,
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,2,3",
|
||||||
|
ExpectedResult: []endpointInfo{{
|
||||||
|
Address: "s01.frostfs.devenv:8080",
|
||||||
|
Priority: 2,
|
||||||
|
Weight: 3,
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: " s01.frostfs.devenv:8080 s02.frostfs.devenv:8080 ",
|
||||||
|
ExpectedResult: []endpointInfo{
|
||||||
|
{
|
||||||
|
Address: "s01.frostfs.devenv:8080",
|
||||||
|
Priority: 1,
|
||||||
|
Weight: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Address: "s02.frostfs.devenv:8080",
|
||||||
|
Priority: 1,
|
||||||
|
Weight: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9",
|
||||||
|
ExpectedResult: []endpointInfo{
|
||||||
|
{
|
||||||
|
Address: "s01.frostfs.devenv:8080",
|
||||||
|
Priority: 1,
|
||||||
|
Weight: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Address: "s02.frostfs.devenv:8080",
|
||||||
|
Priority: 2,
|
||||||
|
Weight: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Address: "s03.frostfs.devenv:8080",
|
||||||
|
Priority: 2,
|
||||||
|
Weight: 9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,-1,1",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,,",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,sd,sd",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,1,0",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,1,2 s02.frostfs.devenv:8080",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
EndpointsParam: "s01.frostfs.devenv:8080,1,2 s02.frostfs.devenv:8080,1",
|
||||||
|
ExpectedError: true,
|
||||||
|
},
|
||||||
|
} {
|
||||||
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
|
res, err := parseEndpoints(tc.EndpointsParam)
|
||||||
|
if tc.ExpectedError {
|
||||||
|
require.Error(t, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, tc.ExpectedResult, res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -42,6 +42,7 @@ docs = [
|
||||||
"dropbox.md",
|
"dropbox.md",
|
||||||
"filefabric.md",
|
"filefabric.md",
|
||||||
"filescom.md",
|
"filescom.md",
|
||||||
|
"frostfs.md",
|
||||||
"ftp.md",
|
"ftp.md",
|
||||||
"gofile.md",
|
"gofile.md",
|
||||||
"googlecloudstorage.md",
|
"googlecloudstorage.md",
|
||||||
|
|
|
@ -123,6 +123,7 @@ WebDAV or S3, that work out of the box.)
|
||||||
{{< provider name="Enterprise File Fabric" home="https://storagemadeeasy.com/about/" config="/filefabric/" >}}
|
{{< provider name="Enterprise File Fabric" home="https://storagemadeeasy.com/about/" config="/filefabric/" >}}
|
||||||
{{< provider name="Fastmail Files" home="https://www.fastmail.com/" config="/webdav/#fastmail-files" >}}
|
{{< provider name="Fastmail Files" home="https://www.fastmail.com/" config="/webdav/#fastmail-files" >}}
|
||||||
{{< provider name="Files.com" home="https://www.files.com/" config="/filescom/" >}}
|
{{< provider name="Files.com" home="https://www.files.com/" config="/filescom/" >}}
|
||||||
|
{{< provider name="FrostFS" home="https://git.frostfs.info/TrueCloudLab/" config="/frostfs/" >}}
|
||||||
{{< provider name="FTP" home="https://en.wikipedia.org/wiki/File_Transfer_Protocol" config="/ftp/" >}}
|
{{< provider name="FTP" home="https://en.wikipedia.org/wiki/File_Transfer_Protocol" config="/ftp/" >}}
|
||||||
{{< provider name="Gofile" home="https://gofile.io/" config="/gofile/" >}}
|
{{< provider name="Gofile" home="https://gofile.io/" config="/gofile/" >}}
|
||||||
{{< provider name="Google Cloud Storage" home="https://cloud.google.com/storage/" config="/googlecloudstorage/" >}}
|
{{< provider name="Google Cloud Storage" home="https://cloud.google.com/storage/" config="/googlecloudstorage/" >}}
|
||||||
|
|
|
@ -296,6 +296,21 @@ rclone [flags]
|
||||||
-f, --filter stringArray Add a file filtering rule
|
-f, --filter stringArray Add a file filtering rule
|
||||||
--filter-from stringArray Read file filtering patterns from a file (use - to read from stdin)
|
--filter-from stringArray Read file filtering patterns from a file (use - to read from stdin)
|
||||||
--fix-case Force rename of case insensitive dest to match source
|
--fix-case Force rename of case insensitive dest to match source
|
||||||
|
--frostfs-address string Address of account
|
||||||
|
--frostfs-ape-cache-invalidation-duration Duration APE cache invalidation duration (default 8s)
|
||||||
|
--frostfs-ape-cache-invalidation-timeout Duration APE cache invalidation timeout (default 24s)
|
||||||
|
--frostfs-ape-chain-check-interval Duration The interval for verifying that the APE chain is saved in FrostFS (default 500ms)
|
||||||
|
--frostfs-connection-timeout Duration FrostFS connection timeout (default 4s)
|
||||||
|
--frostfs-container-creation-policy string Container creation policy for new containers (default "private")
|
||||||
|
--frostfs-description string Description of the remote
|
||||||
|
--frostfs-endpoint string Endpoints to connect to FrostFS node
|
||||||
|
--frostfs-password string Password to decrypt wallet
|
||||||
|
--frostfs-placement-policy string Placement policy for new containers (default "REP 3")
|
||||||
|
--frostfs-rebalance-interval Duration FrostFS rebalance connections interval (default 15s)
|
||||||
|
--frostfs-request-timeout Duration FrostFS request timeout (default 12s)
|
||||||
|
--frostfs-rpc-endpoint string Endpoint to connect to Neo rpc node
|
||||||
|
--frostfs-session-expiration int FrostFS session expiration epoch (default 4294967295)
|
||||||
|
--frostfs-wallet string Path to wallet
|
||||||
--fs-cache-expire-duration Duration Cache remotes for this long (0 to disable caching) (default 5m0s)
|
--fs-cache-expire-duration Duration Cache remotes for this long (0 to disable caching) (default 5m0s)
|
||||||
--fs-cache-expire-interval Duration Interval to check for expired remotes (default 1m0s)
|
--fs-cache-expire-interval Duration Interval to check for expired remotes (default 1m0s)
|
||||||
--ftp-ask-password Allow asking for FTP password when needed
|
--ftp-ask-password Allow asking for FTP password when needed
|
||||||
|
@ -929,7 +944,7 @@ rclone [flags]
|
||||||
--use-json-log Use json log format
|
--use-json-log Use json log format
|
||||||
--use-mmap Use mmap allocator (see docs)
|
--use-mmap Use mmap allocator (see docs)
|
||||||
--use-server-modtime Use server modified time instead of object metadata
|
--use-server-modtime Use server modified time instead of object metadata
|
||||||
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2")
|
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2-beta.8331.25cf42493.feature/add-frostfs-support")
|
||||||
-v, --verbose count Print lots more stuff (repeat for more)
|
-v, --verbose count Print lots more stuff (repeat for more)
|
||||||
-V, --version Print the version number
|
-V, --version Print the version number
|
||||||
--webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon)
|
--webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon)
|
||||||
|
|
|
@ -115,7 +115,7 @@ Flags for general networking and HTTP stuff.
|
||||||
--tpslimit float Limit HTTP transactions per second to this
|
--tpslimit float Limit HTTP transactions per second to this
|
||||||
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
|
||||||
--use-cookies Enable session cookiejar
|
--use-cookies Enable session cookiejar
|
||||||
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2")
|
--user-agent string Set the user-agent to a specified string (default "rclone/v1.68.2-beta.8331.25cf42493.feature/add-frostfs-support")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -552,6 +552,21 @@ Backend-only flags (these can be set in the config file also).
|
||||||
--filescom-password string The password used to authenticate with Files.com (obscured)
|
--filescom-password string The password used to authenticate with Files.com (obscured)
|
||||||
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
--filescom-site string Your site subdomain (e.g. mysite) or custom domain (e.g. myfiles.customdomain.com)
|
||||||
--filescom-username string The username used to authenticate with Files.com
|
--filescom-username string The username used to authenticate with Files.com
|
||||||
|
--frostfs-address string Address of account
|
||||||
|
--frostfs-ape-cache-invalidation-duration Duration APE cache invalidation duration (default 8s)
|
||||||
|
--frostfs-ape-cache-invalidation-timeout Duration APE cache invalidation timeout (default 24s)
|
||||||
|
--frostfs-ape-chain-check-interval Duration The interval for verifying that the APE chain is saved in FrostFS (default 500ms)
|
||||||
|
--frostfs-connection-timeout Duration FrostFS connection timeout (default 4s)
|
||||||
|
--frostfs-container-creation-policy string Container creation policy for new containers (default "private")
|
||||||
|
--frostfs-description string Description of the remote
|
||||||
|
--frostfs-endpoint string Endpoints to connect to FrostFS node
|
||||||
|
--frostfs-password string Password to decrypt wallet
|
||||||
|
--frostfs-placement-policy string Placement policy for new containers (default "REP 3")
|
||||||
|
--frostfs-rebalance-interval Duration FrostFS rebalance connections interval (default 15s)
|
||||||
|
--frostfs-request-timeout Duration FrostFS request timeout (default 12s)
|
||||||
|
--frostfs-rpc-endpoint string Endpoint to connect to Neo rpc node
|
||||||
|
--frostfs-session-expiration int FrostFS session expiration epoch (default 4294967295)
|
||||||
|
--frostfs-wallet string Path to wallet
|
||||||
--ftp-ask-password Allow asking for FTP password when needed
|
--ftp-ask-password Allow asking for FTP password when needed
|
||||||
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
--ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
|
||||||
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
--ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
|
||||||
|
|
466
docs/content/frostfs.md
Normal file
466
docs/content/frostfs.md
Normal file
|
@ -0,0 +1,466 @@
|
||||||
|
---
|
||||||
|
title: "FrostFS"
|
||||||
|
description: "Rclone docs for FrostFS backend"
|
||||||
|
versionIntroduced: "---"
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{< icon "fa fa-file" >}} FrostFS
|
||||||
|
|
||||||
|
Rclone FrostFS support is provided using the
|
||||||
|
[git.frostfs.info/TrueCloudLab/frostfs-sdk-go](https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go) package
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
To create an FrostFS configuration named `remote`, run
|
||||||
|
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
Rclone config guides you through an interactive setup process. A minimal
|
||||||
|
rclone FrostFS remote definition only requires endpoint and path to FrostFS user wallet.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
No remotes found, make a new one?
|
||||||
|
n) New remote
|
||||||
|
s) Set configuration password
|
||||||
|
q) Quit config
|
||||||
|
n/s/q> n
|
||||||
|
|
||||||
|
Enter name for new remote.
|
||||||
|
name> remote
|
||||||
|
|
||||||
|
Option Storage.
|
||||||
|
Type of storage to configure.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / 1Fichier
|
||||||
|
\ (fichier)
|
||||||
|
2 / Akamai NetStorage
|
||||||
|
\ (netstorage)
|
||||||
|
3 / Alias for an existing remote
|
||||||
|
\ (alias)
|
||||||
|
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
|
||||||
|
\ (s3)
|
||||||
|
5 / Backblaze B2
|
||||||
|
\ (b2)
|
||||||
|
6 / Better checksums for other remotes
|
||||||
|
\ (hasher)
|
||||||
|
7 / Box
|
||||||
|
\ (box)
|
||||||
|
8 / Cache a remote
|
||||||
|
\ (cache)
|
||||||
|
9 / Citrix Sharefile
|
||||||
|
\ (sharefile)
|
||||||
|
10 / Combine several remotes into one
|
||||||
|
\ (combine)
|
||||||
|
11 / Compress a remote
|
||||||
|
\ (compress)
|
||||||
|
12 / Distributed, decentralized object storage FrostFS
|
||||||
|
\ (frostfs)
|
||||||
|
13 / Dropbox
|
||||||
|
\ (dropbox)
|
||||||
|
14 / Encrypt/Decrypt a remote
|
||||||
|
\ (crypt)
|
||||||
|
15 / Enterprise File Fabric
|
||||||
|
\ (filefabric)
|
||||||
|
16 / FTP
|
||||||
|
\ (ftp)
|
||||||
|
17 / Files.com
|
||||||
|
\ (filescom)
|
||||||
|
18 / Gofile
|
||||||
|
\ (gofile)
|
||||||
|
19 / Google Cloud Storage (this is not Google Drive)
|
||||||
|
\ (google cloud storage)
|
||||||
|
20 / Google Drive
|
||||||
|
\ (drive)
|
||||||
|
21 / Google Photos
|
||||||
|
\ (google photos)
|
||||||
|
22 / HTTP
|
||||||
|
\ (http)
|
||||||
|
23 / Hadoop distributed file system
|
||||||
|
\ (hdfs)
|
||||||
|
24 / HiDrive
|
||||||
|
\ (hidrive)
|
||||||
|
25 / ImageKit.io
|
||||||
|
\ (imagekit)
|
||||||
|
26 / In memory object storage system.
|
||||||
|
\ (memory)
|
||||||
|
27 / Internet Archive
|
||||||
|
\ (internetarchive)
|
||||||
|
28 / Jottacloud
|
||||||
|
\ (jottacloud)
|
||||||
|
29 / Koofr, Digi Storage and other Koofr-compatible storage providers
|
||||||
|
\ (koofr)
|
||||||
|
30 / Linkbox
|
||||||
|
\ (linkbox)
|
||||||
|
31 / Local Disk
|
||||||
|
\ (local)
|
||||||
|
32 / Mail.ru Cloud
|
||||||
|
\ (mailru)
|
||||||
|
33 / Mega
|
||||||
|
\ (mega)
|
||||||
|
34 / Microsoft Azure Blob Storage
|
||||||
|
\ (azureblob)
|
||||||
|
35 / Microsoft Azure Files
|
||||||
|
\ (azurefiles)
|
||||||
|
36 / Microsoft OneDrive
|
||||||
|
\ (onedrive)
|
||||||
|
37 / OpenDrive
|
||||||
|
\ (opendrive)
|
||||||
|
38 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
|
||||||
|
\ (swift)
|
||||||
|
39 / Oracle Cloud Infrastructure Object Storage
|
||||||
|
\ (oracleobjectstorage)
|
||||||
|
40 / Pcloud
|
||||||
|
\ (pcloud)
|
||||||
|
41 / PikPak
|
||||||
|
\ (pikpak)
|
||||||
|
42 / Pixeldrain Filesystem
|
||||||
|
\ (pixeldrain)
|
||||||
|
43 / Proton Drive
|
||||||
|
\ (protondrive)
|
||||||
|
44 / Put.io
|
||||||
|
\ (putio)
|
||||||
|
45 / QingCloud Object Storage
|
||||||
|
\ (qingstor)
|
||||||
|
46 / Quatrix by Maytech
|
||||||
|
\ (quatrix)
|
||||||
|
47 / SMB / CIFS
|
||||||
|
\ (smb)
|
||||||
|
48 / SSH/SFTP
|
||||||
|
\ (sftp)
|
||||||
|
49 / Sia Decentralized Cloud
|
||||||
|
\ (sia)
|
||||||
|
50 / Storj Decentralized Cloud Storage
|
||||||
|
\ (storj)
|
||||||
|
51 / Sugarsync
|
||||||
|
\ (sugarsync)
|
||||||
|
52 / Transparently chunk/split large files
|
||||||
|
\ (chunker)
|
||||||
|
53 / Uloz.to
|
||||||
|
\ (ulozto)
|
||||||
|
54 / Union merges the contents of several upstream fs
|
||||||
|
\ (union)
|
||||||
|
55 / Uptobox
|
||||||
|
\ (uptobox)
|
||||||
|
56 / WebDAV
|
||||||
|
\ (webdav)
|
||||||
|
57 / Yandex Disk
|
||||||
|
\ (yandex)
|
||||||
|
58 / Zoho
|
||||||
|
\ (zoho)
|
||||||
|
59 / premiumize.me
|
||||||
|
\ (premiumizeme)
|
||||||
|
60 / seafile
|
||||||
|
\ (seafile)
|
||||||
|
Storage> frostfs
|
||||||
|
|
||||||
|
Option endpoint.
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
1 / One endpoint.
|
||||||
|
\ (s01.frostfs.devenv:8080)
|
||||||
|
2 / Multiple endpoints to form pool.
|
||||||
|
\ (s01.frostfs.devenv:8080 s02.frostfs.devenv:8080)
|
||||||
|
3 / Multiple endpoints with priority (less value is higher priority). Until s01 is healthy all request will be send to it.
|
||||||
|
\ (s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2)
|
||||||
|
4 / Multiple endpoints with priority and weights. After s01 is unhealthy requests will be send to s02 and s03 in proportions 10% and 90% respectively.
|
||||||
|
\ (s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9)
|
||||||
|
endpoint> s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
|
||||||
|
Option connection_timeout.
|
||||||
|
FrostFS connection timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (4s).
|
||||||
|
connection_timeout>
|
||||||
|
|
||||||
|
Option request_timeout.
|
||||||
|
FrostFS request timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (12s).
|
||||||
|
request_timeout>
|
||||||
|
|
||||||
|
Option rebalance_interval.
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
Enter a value of type Duration. Press Enter for the default (15s).
|
||||||
|
rebalance_interval>
|
||||||
|
|
||||||
|
Option session_expiration.
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
Enter a signed integer. Press Enter for the default (4294967295).
|
||||||
|
session_expiration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_duration.
|
||||||
|
APE cache invalidation duration
|
||||||
|
Enter a value of type Duration. Press Enter for the default (8s).
|
||||||
|
ape_cache_invalidation_duration>
|
||||||
|
|
||||||
|
Option ape_cache_invalidation_timeout.
|
||||||
|
APE cache invalidation timeout
|
||||||
|
Enter a value of type Duration. Press Enter for the default (24s).
|
||||||
|
ape_cache_invalidation_timeout>
|
||||||
|
|
||||||
|
Option ape_chain_check_interval.
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
Enter a value of type Duration. Press Enter for the default (500ms).
|
||||||
|
ape_chain_check_interval>
|
||||||
|
|
||||||
|
Option rpc_endpoint.
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
rpc_endpoint>
|
||||||
|
|
||||||
|
Option wallet.
|
||||||
|
Path to wallet
|
||||||
|
Enter a value.
|
||||||
|
wallet> /wallets/wallet.conf
|
||||||
|
|
||||||
|
Option address.
|
||||||
|
Address of account
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
address>
|
||||||
|
|
||||||
|
Option password.
|
||||||
|
Password to decrypt wallet
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
password>
|
||||||
|
|
||||||
|
Option placement_policy.
|
||||||
|
Placement policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (REP 3).
|
||||||
|
1 / Container will have 3 replicas
|
||||||
|
\ (REP 3)
|
||||||
|
placement_policy> REP 1
|
||||||
|
|
||||||
|
Option container_creation_policy.
|
||||||
|
Container creation policy for new containers
|
||||||
|
Choose a number from below, or type in your own value of type string.
|
||||||
|
Press Enter for the default (private).
|
||||||
|
1 / Public container, anyone can read and write
|
||||||
|
\ (public-read-write)
|
||||||
|
2 / Public container, owner can read and write, others can only read
|
||||||
|
\ (public-read)
|
||||||
|
3 / Private container, only owner has access to it
|
||||||
|
\ (private)
|
||||||
|
container_creation_policy>
|
||||||
|
|
||||||
|
Edit advanced config?
|
||||||
|
y) Yes
|
||||||
|
n) No (default)
|
||||||
|
y/n> n
|
||||||
|
|
||||||
|
Configuration complete.
|
||||||
|
Options:
|
||||||
|
- type: frostfs
|
||||||
|
- endpoint: s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2
|
||||||
|
- password: M@zPGpWDravchenko/develop/go/playground/play_with_ape/cfg/wallet_akrav.js
|
||||||
|
- placement_policy: REP 1
|
||||||
|
Keep this "remote" remote?
|
||||||
|
y) Yes this is OK (default)
|
||||||
|
e) Edit this remote
|
||||||
|
d) Delete this remote
|
||||||
|
y/e/d> y
|
||||||
|
```
|
||||||
|
|
||||||
|
As a remote root directory, you can use either the container identifier or its user-friendly name.
|
||||||
|
If you choose to use a container name, rclone will create a new container with that name when
|
||||||
|
it's used for the first time.
|
||||||
|
|
||||||
|
For example, both of the following commands would be valid if there was a `~/test-copy` directory and a container with
|
||||||
|
the identifier `23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf`:
|
||||||
|
|
||||||
|
rclone copy ~/test-copy remote:23fk3Bcw5mPZ4YtYkTLJbQebtM2WXHz4HL8FgsrTJkSf/test-copy
|
||||||
|
rclone copy ~/test-copy remote:container-name/test-copy
|
||||||
|
|
||||||
|
{{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/frostfs/frostfs.go then run make backenddocs" >}}
|
||||||
|
### Standard options
|
||||||
|
|
||||||
|
Here are the Standard options specific to frostfs (Distributed, decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
#### --frostfs-endpoint
|
||||||
|
|
||||||
|
Endpoints to connect to FrostFS node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
- Examples:
|
||||||
|
- "s01.frostfs.devenv:8080"
|
||||||
|
- One endpoint.
|
||||||
|
- "s01.frostfs.devenv:8080 s02.frostfs.devenv:8080"
|
||||||
|
- Multiple endpoints to form pool.
|
||||||
|
- "s01.frostfs.devenv:8080,1 s02.frostfs.devenv:8080,2"
|
||||||
|
- Multiple endpoints with priority (lower value has higher priority). Until s01 is healthy, all requests will be sent to it.
|
||||||
|
- "s01.frostfs.devenv:8080,1,1 s02.frostfs.devenv:8080,2,1 s03.frostfs.devenv:8080,2,9"
|
||||||
|
- Multiple endpoints with priority and weights. After the s01 endpoint is unhealthy, requests will be sent to the s02 and s03 endpoints in proportions of 10% and 90%, respectively.
|
||||||
|
|
||||||
|
#### --frostfs-connection-timeout
|
||||||
|
|
||||||
|
FrostFS connection timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: connection_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONNECTION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 4s
|
||||||
|
|
||||||
|
#### --frostfs-request-timeout
|
||||||
|
|
||||||
|
FrostFS request timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: request_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_REQUEST_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 12s
|
||||||
|
|
||||||
|
#### --frostfs-rebalance-interval
|
||||||
|
|
||||||
|
FrostFS rebalance connections interval
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rebalance_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_REBALANCE_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 15s
|
||||||
|
|
||||||
|
#### --frostfs-session-expiration
|
||||||
|
|
||||||
|
FrostFS session expiration epoch
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: session_expiration
|
||||||
|
- Env Var: RCLONE_FROSTFS_SESSION_EXPIRATION
|
||||||
|
- Type: int
|
||||||
|
- Default: 4294967295
|
||||||
|
|
||||||
|
#### --frostfs-ape-cache-invalidation-duration
|
||||||
|
|
||||||
|
APE cache invalidation duration
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_duration
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_DURATION
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 8s
|
||||||
|
|
||||||
|
#### --frostfs-ape-cache-invalidation-timeout
|
||||||
|
|
||||||
|
APE cache invalidation timeout
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_cache_invalidation_timeout
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CACHE_INVALIDATION_TIMEOUT
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 24s
|
||||||
|
|
||||||
|
#### --frostfs-ape-chain-check-interval
|
||||||
|
|
||||||
|
The interval for verifying that the APE chain is saved in FrostFS.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: ape_chain_check_interval
|
||||||
|
- Env Var: RCLONE_FROSTFS_APE_CHAIN_CHECK_INTERVAL
|
||||||
|
- Type: Duration
|
||||||
|
- Default: 500ms
|
||||||
|
|
||||||
|
#### --frostfs-rpc-endpoint
|
||||||
|
|
||||||
|
Endpoint to connect to Neo rpc node
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: rpc_endpoint
|
||||||
|
- Env Var: RCLONE_FROSTFS_RPC_ENDPOINT
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-wallet
|
||||||
|
|
||||||
|
Path to wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: wallet
|
||||||
|
- Env Var: RCLONE_FROSTFS_WALLET
|
||||||
|
- Type: string
|
||||||
|
- Required: true
|
||||||
|
|
||||||
|
#### --frostfs-address
|
||||||
|
|
||||||
|
Address of account
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: address
|
||||||
|
- Env Var: RCLONE_FROSTFS_ADDRESS
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-password
|
||||||
|
|
||||||
|
Password to decrypt wallet
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: password
|
||||||
|
- Env Var: RCLONE_FROSTFS_PASSWORD
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
#### --frostfs-placement-policy
|
||||||
|
|
||||||
|
Placement policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: placement_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_PLACEMENT_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "REP 3"
|
||||||
|
- Examples:
|
||||||
|
- "REP 3"
|
||||||
|
- Container will have 3 replicas
|
||||||
|
|
||||||
|
#### --frostfs-container-creation-policy
|
||||||
|
|
||||||
|
Container creation policy for new containers
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: container_creation_policy
|
||||||
|
- Env Var: RCLONE_FROSTFS_CONTAINER_CREATION_POLICY
|
||||||
|
- Type: string
|
||||||
|
- Default: "private"
|
||||||
|
- Examples:
|
||||||
|
- "public-read-write"
|
||||||
|
- Public container, anyone can read and write
|
||||||
|
- "public-read"
|
||||||
|
- Public container, owner can read and write, others can only read
|
||||||
|
- "private"
|
||||||
|
- Private container, only owner has access to it
|
||||||
|
|
||||||
|
### Advanced options
|
||||||
|
|
||||||
|
Here are the Advanced options specific to frostfs (Distributed, decentralized object storage FrostFS).
|
||||||
|
|
||||||
|
#### --frostfs-description
|
||||||
|
|
||||||
|
Description of the remote.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
|
||||||
|
- Config: description
|
||||||
|
- Env Var: RCLONE_FROSTFS_DESCRIPTION
|
||||||
|
- Type: string
|
||||||
|
- Required: false
|
||||||
|
|
||||||
|
{{< rem autogenerated options stop >}}
|
112
go.mod
112
go.mod
|
@ -1,9 +1,11 @@
|
||||||
module github.com/rclone/rclone
|
module github.com/rclone/rclone
|
||||||
|
|
||||||
go 1.21
|
go 1.22
|
||||||
|
|
||||||
require (
|
require (
|
||||||
bazil.org/fuse v0.0.0-20230120002735-62a210ff1fd5
|
bazil.org/fuse v0.0.0-20230120002735-62a210ff1fd5
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20241218062344-42a0fc8c13ae
|
||||||
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20240822104152-a3bc3099bd5b
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
||||||
|
@ -11,6 +13,7 @@ require (
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358
|
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358
|
||||||
github.com/Files-com/files-sdk-go/v3 v3.2.34
|
github.com/Files-com/files-sdk-go/v3 v3.2.34
|
||||||
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd
|
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd
|
||||||
|
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371
|
||||||
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e
|
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e
|
||||||
github.com/aalpar/deheap v0.0.0-20210914013432-0cc84d79dec3
|
github.com/aalpar/deheap v0.0.0-20210914013432-0cc84d79dec3
|
||||||
github.com/abbot/go-http-auth v0.4.0
|
github.com/abbot/go-http-auth v0.4.0
|
||||||
|
@ -35,6 +38,7 @@ require (
|
||||||
github.com/go-chi/chi/v5 v5.1.0
|
github.com/go-chi/chi/v5 v5.1.0
|
||||||
github.com/go-darwin/apfs v0.0.0-20211011131704-f84b94dbf348
|
github.com/go-darwin/apfs v0.0.0-20211011131704-f84b94dbf348
|
||||||
github.com/go-git/go-billy/v5 v5.5.0
|
github.com/go-git/go-billy/v5 v5.5.0
|
||||||
|
github.com/golang-jwt/jwt/v4 v4.5.1
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/hanwen/go-fuse/v2 v2.5.1
|
github.com/hanwen/go-fuse/v2 v2.5.1
|
||||||
github.com/henrybear327/Proton-API-Bridge v1.0.0
|
github.com/henrybear327/Proton-API-Bridge v1.0.0
|
||||||
|
@ -52,11 +56,13 @@ require (
|
||||||
github.com/mitchellh/go-homedir v1.1.0
|
github.com/mitchellh/go-homedir v1.1.0
|
||||||
github.com/moby/sys/mountinfo v0.7.2
|
github.com/moby/sys/mountinfo v0.7.2
|
||||||
github.com/ncw/swift/v2 v2.0.3
|
github.com/ncw/swift/v2 v2.0.3
|
||||||
|
github.com/nspcc-dev/neo-go v0.107.2
|
||||||
github.com/oracle/oci-go-sdk/v65 v65.69.2
|
github.com/oracle/oci-go-sdk/v65 v65.69.2
|
||||||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||||
github.com/pkg/sftp v1.13.6
|
github.com/pkg/sftp v1.13.6
|
||||||
|
github.com/pkg/xattr v0.4.10
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
||||||
github.com/prometheus/client_golang v1.19.1
|
github.com/prometheus/client_golang v1.20.2
|
||||||
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8
|
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8
|
||||||
github.com/quasilyte/go-ruleguard/dsl v0.3.22
|
github.com/quasilyte/go-ruleguard/dsl v0.3.22
|
||||||
github.com/rclone/gofakes3 v0.0.3
|
github.com/rclone/gofakes3 v0.0.3
|
||||||
|
@ -76,15 +82,17 @@ require (
|
||||||
github.com/xanzy/ssh-agent v0.3.3
|
github.com/xanzy/ssh-agent v0.3.3
|
||||||
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a
|
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a
|
||||||
github.com/yunify/qingstor-sdk-go/v3 v3.2.0
|
github.com/yunify/qingstor-sdk-go/v3 v3.2.0
|
||||||
go.etcd.io/bbolt v1.3.10
|
go.etcd.io/bbolt v1.3.11
|
||||||
goftp.io/server/v2 v2.0.1
|
goftp.io/server/v2 v2.0.1
|
||||||
golang.org/x/crypto v0.25.0
|
golang.org/x/crypto v0.31.0
|
||||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
|
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948
|
||||||
golang.org/x/net v0.27.0
|
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028
|
||||||
|
golang.org/x/net v0.28.0
|
||||||
golang.org/x/oauth2 v0.21.0
|
golang.org/x/oauth2 v0.21.0
|
||||||
golang.org/x/sync v0.8.0
|
golang.org/x/sync v0.10.0
|
||||||
golang.org/x/sys v0.22.0
|
golang.org/x/sys v0.28.0
|
||||||
golang.org/x/text v0.17.0
|
golang.org/x/term v0.27.0
|
||||||
|
golang.org/x/text v0.21.0
|
||||||
golang.org/x/time v0.5.0
|
golang.org/x/time v0.5.0
|
||||||
google.golang.org/api v0.188.0
|
google.golang.org/api v0.188.0
|
||||||
gopkg.in/validator.v2 v2.0.1
|
gopkg.in/validator.v2 v2.0.1
|
||||||
|
@ -96,17 +104,25 @@ require (
|
||||||
cloud.google.com/go/auth v0.7.0 // indirect
|
cloud.google.com/go/auth v0.7.0 // indirect
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
||||||
cloud.google.com/go/compute/metadata v0.4.0 // indirect
|
cloud.google.com/go/compute/metadata v0.4.0 // indirect
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-contract v0.19.3-0.20240621131249-49e5270f673e // indirect
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0 // indirect
|
||||||
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1 // indirect
|
||||||
|
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 // indirect
|
||||||
|
git.frostfs.info/TrueCloudLab/tzhash v1.8.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
||||||
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||||
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf // indirect
|
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf // indirect
|
||||||
github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e // indirect
|
github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e // indirect
|
||||||
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect
|
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect
|
||||||
github.com/ProtonMail/go-srp v0.0.7 // indirect
|
github.com/ProtonMail/go-srp v0.0.7 // indirect
|
||||||
github.com/ProtonMail/gopenpgp/v2 v2.7.4 // indirect
|
github.com/ProtonMail/gopenpgp/v2 v2.7.3 // indirect
|
||||||
github.com/PuerkitoBio/goquery v1.8.1 // indirect
|
github.com/PuerkitoBio/goquery v1.8.1 // indirect
|
||||||
|
github.com/VictoriaMetrics/easyproto v0.1.4 // indirect
|
||||||
github.com/akavel/rsrc v0.10.2 // indirect
|
github.com/akavel/rsrc v0.10.2 // indirect
|
||||||
github.com/anacrolix/generics v0.0.1 // indirect
|
github.com/anacrolix/generics v0.0.1 // indirect
|
||||||
github.com/andybalholm/cascadia v1.3.2 // indirect
|
github.com/andybalholm/cascadia v1.3.2 // indirect
|
||||||
|
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
|
||||||
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc // indirect
|
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
|
||||||
|
@ -122,81 +138,101 @@ require (
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/bradenaw/juniper v0.15.2 // indirect
|
github.com/bradenaw/juniper v0.13.1 // indirect
|
||||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
|
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
|
||||||
github.com/calebcase/tmpfile v1.0.3 // indirect
|
github.com/calebcase/tmpfile v1.0.3 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 // indirect
|
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 // indirect
|
||||||
github.com/cloudflare/circl v1.3.7 // indirect
|
github.com/cloudflare/circl v1.3.3 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
||||||
github.com/cronokirby/saferith v0.33.0 // indirect
|
github.com/cronokirby/saferith v0.33.0 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/emersion/go-message v0.18.0 // indirect
|
github.com/emersion/go-message v0.17.0 // indirect
|
||||||
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect
|
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect
|
||||||
github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9 // indirect
|
github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/flynn/noise v1.0.1 // indirect
|
github.com/flynn/noise v1.0.0 // indirect
|
||||||
github.com/gdamore/encoding v1.0.0 // indirect
|
github.com/gdamore/encoding v1.0.0 // indirect
|
||||||
github.com/geoffgarside/ber v1.1.0 // indirect
|
github.com/geoffgarside/ber v1.1.0 // indirect
|
||||||
github.com/go-ini/ini v1.67.0 // indirect
|
github.com/go-ini/ini v1.67.0 // indirect
|
||||||
github.com/go-logr/logr v1.4.1 // indirect
|
github.com/go-logr/logr v1.4.1 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-ole/go-ole v1.3.0 // indirect
|
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||||
github.com/go-resty/resty/v2 v2.11.0 // indirect
|
github.com/go-resty/resty/v2 v2.7.0 // indirect
|
||||||
github.com/goccy/go-json v0.10.3 // indirect
|
github.com/goccy/go-json v0.10.3 // indirect
|
||||||
github.com/gofrs/flock v0.8.1 // indirect
|
github.com/gofrs/flock v0.8.1 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||||
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
|
github.com/golang/snappy v0.0.1 // indirect
|
||||||
github.com/google/s2a-go v0.1.7 // indirect
|
github.com/google/s2a-go v0.1.7 // indirect
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.12.5 // indirect
|
github.com/googleapis/gax-go/v2 v2.12.5 // indirect
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect
|
github.com/gorilla/websocket v1.5.3 // indirect
|
||||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
github.com/hashicorp/errwrap v1.0.0 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
||||||
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
||||||
|
github.com/holiman/uint256 v1.3.1 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
||||||
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
||||||
github.com/jcmturner/gofork v1.7.6 // indirect
|
github.com/jcmturner/gofork v1.7.6 // indirect
|
||||||
github.com/jcmturner/goidentity/v6 v6.0.1 // indirect
|
github.com/jcmturner/goidentity/v6 v6.0.1 // indirect
|
||||||
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
|
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
|
||||||
github.com/jtolio/noiseconn v0.0.0-20231127013910-f6d9ecbf1de7 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
|
github.com/jtolio/noiseconn v0.0.0-20230111204749-d7ec1a08b0b8 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
|
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
|
||||||
github.com/kr/fs v0.1.0 // indirect
|
github.com/kr/fs v0.1.0 // indirect
|
||||||
github.com/kylelemons/godebug v1.1.0 // indirect
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
||||||
github.com/lpar/date v1.0.0 // indirect
|
github.com/lpar/date v1.0.0 // indirect
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||||
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed // indirect
|
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
||||||
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
github.com/minio/md5-simd v1.1.2 // indirect
|
github.com/minio/md5-simd v1.1.2 // indirect
|
||||||
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
|
github.com/nspcc-dev/go-ordered-json v0.0.0-20240830112754-291b000d1f3b // indirect
|
||||||
|
github.com/nspcc-dev/hrw/v2 v2.0.2 // indirect
|
||||||
|
github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20241212130705-ea0a6114d2d6 // indirect
|
||||||
|
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea // indirect
|
||||||
|
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12.0.20241205083504-335d9fe90f24 // indirect
|
||||||
|
github.com/nspcc-dev/rfc6979 v0.2.3 // indirect
|
||||||
|
github.com/nspcc-dev/tzhash v1.8.2 // indirect
|
||||||
github.com/onsi/ginkgo v1.16.5 // indirect
|
github.com/onsi/ginkgo v1.16.5 // indirect
|
||||||
github.com/panjf2000/ants/v2 v2.9.1 // indirect
|
github.com/panjf2000/ants/v2 v2.9.1 // indirect
|
||||||
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 // indirect
|
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 // indirect
|
||||||
|
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect
|
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
||||||
github.com/prometheus/client_model v0.5.0 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/prometheus/common v0.48.0 // indirect
|
github.com/prometheus/common v0.55.0 // indirect
|
||||||
github.com/prometheus/procfs v0.12.0 // indirect
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 // indirect
|
github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 // indirect
|
||||||
github.com/relvacode/iso8601 v1.3.0 // indirect
|
github.com/relvacode/iso8601 v1.3.0 // indirect
|
||||||
github.com/rs/xid v1.5.0 // indirect
|
github.com/rs/xid v1.5.0 // indirect
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
||||||
github.com/samber/lo v1.47.0 // indirect
|
github.com/samber/lo v1.39.0 // indirect
|
||||||
github.com/shabbyrobe/gocovmerge v0.0.0-20230507112040-c3350d9342df // indirect
|
github.com/shabbyrobe/gocovmerge v0.0.0-20190829150210-3e036491d500 // indirect
|
||||||
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
||||||
github.com/sony/gobreaker v0.5.0 // indirect
|
github.com/sony/gobreaker v0.5.0 // indirect
|
||||||
github.com/spacemonkeygo/monkit/v3 v3.0.22 // indirect
|
github.com/spacemonkeygo/monkit/v3 v3.0.22 // indirect
|
||||||
github.com/tklauser/go-sysconf v0.3.13 // indirect
|
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 // indirect
|
||||||
github.com/tklauser/numcpus v0.7.0 // indirect
|
github.com/tklauser/go-sysconf v0.3.12 // indirect
|
||||||
|
github.com/tklauser/numcpus v0.6.1 // indirect
|
||||||
|
github.com/twmb/murmur3 v1.1.8 // indirect
|
||||||
|
github.com/urfave/cli/v2 v2.27.4 // indirect
|
||||||
github.com/willscott/go-nfs-client v0.0.0-20240104095149-b44639837b00 // indirect
|
github.com/willscott/go-nfs-client v0.0.0-20240104095149-b44639837b00 // indirect
|
||||||
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
|
||||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||||
github.com/zeebo/blake3 v0.2.3 // indirect
|
github.com/zeebo/blake3 v0.2.3 // indirect
|
||||||
github.com/zeebo/errs v1.3.0 // indirect
|
github.com/zeebo/errs v1.3.0 // indirect
|
||||||
|
@ -205,11 +241,11 @@ require (
|
||||||
go.opentelemetry.io/otel v1.24.0 // indirect
|
go.opentelemetry.io/otel v1.24.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
||||||
golang.org/x/mod v0.19.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/tools v0.23.0 // indirect
|
go.uber.org/zap v1.27.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect
|
golang.org/x/tools v0.24.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect
|
||||||
google.golang.org/grpc v1.64.1 // indirect
|
google.golang.org/grpc v1.66.2 // indirect
|
||||||
google.golang.org/protobuf v1.34.2 // indirect
|
google.golang.org/protobuf v1.34.2 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
moul.io/http2curl/v2 v2.3.0 // indirect
|
moul.io/http2curl/v2 v2.3.0 // indirect
|
||||||
|
@ -219,13 +255,3 @@ require (
|
||||||
storj.io/infectious v0.0.2 // indirect
|
storj.io/infectious v0.0.2 // indirect
|
||||||
storj.io/picobuf v0.0.3 // indirect
|
storj.io/picobuf v0.0.3 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
|
||||||
github.com/ProtonMail/go-crypto v1.0.0
|
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1
|
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
||||||
github.com/pkg/xattr v0.4.9
|
|
||||||
golang.org/x/mobile v0.0.0-20240716161057-1ad2df20a8b6
|
|
||||||
golang.org/x/term v0.22.0
|
|
||||||
)
|
|
||||||
|
|
292
go.sum
292
go.sum
|
@ -38,7 +38,23 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
|
||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||||
|
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
|
||||||
|
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-contract v0.19.3-0.20240621131249-49e5270f673e h1:kcBqZBiFIUBATUqEuvVigtkJJWQ2Gug/eYXn967o3M4=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-contract v0.19.3-0.20240621131249-49e5270f673e/go.mod h1:F/fe1OoIDKr5Bz99q4sriuHDuf3aZefZy9ZsCqEtgxc=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0 h1:FxqFDhQYYgpe41qsIHVOcdzSVCB8JNSfPG7Uk4r2oSk=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0/go.mod h1:RUIKZATQLJ+TaYQa60X2fTDwfuhMfm8Ar60bQ5fr+vU=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20241218062344-42a0fc8c13ae h1:7gvuOTmS3oaOM79JkHWWlsvGqIRqsum5KnOI1TYqfn0=
|
||||||
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20241218062344-42a0fc8c13ae/go.mod h1:dbWUc5jOBTXVvssCLCYxkkSTL9jgLr1KruGP2FMAfiM=
|
||||||
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1 h1:ccBRK21rFvY5R1WotI6LNoPlizk7qSvdfD8lNIRudVc=
|
||||||
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1/go.mod h1:C1Ygde2n843yTZEQ0FP69jYiuaYV0kriLvP4zm8JuvM=
|
||||||
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20240822104152-a3bc3099bd5b h1:M50kdfrf/h8c3cz0bJ2AEUcbXvAlPFVC1Wp1WkfZ/8E=
|
||||||
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20240822104152-a3bc3099bd5b/go.mod h1:GZTk55RI4dKzsK6BCn5h2xxE28UHNfgoq/NJxW/LQ6A=
|
||||||
|
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 h1:M2KR3iBj7WpY3hP10IevfIB9MURr4O9mwVfJ+SjT3HA=
|
||||||
|
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0/go.mod h1:okpbKfVYf/BpejtfFTfhZqFP+sZ8rsHrP8Rr/jYPNRc=
|
||||||
|
git.frostfs.info/TrueCloudLab/tzhash v1.8.0 h1:UFMnUIk0Zh17m8rjGHJMqku2hCgaXDqjqZzS4gsb4UA=
|
||||||
|
git.frostfs.info/TrueCloudLab/tzhash v1.8.0/go.mod h1:dhY+oy274hV8wGvGL4MwwMpdL3GYvaX1a8GQZQHvlF8=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
|
||||||
|
@ -51,6 +67,8 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 h1:YUUxeiOWgdAQE3pXt
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2/go.mod h1:dmXQgZuiSubAecswZE+Sm8jkvEa7kQgTPVRvwL/nd0E=
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2/go.mod h1:dmXQgZuiSubAecswZE+Sm8jkvEa7kQgTPVRvwL/nd0E=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2 h1:PmDhkIT8S5U4nkY/s78Xmf7CXT8qCliNEBhbrkBp3Q0=
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2 h1:PmDhkIT8S5U4nkY/s78Xmf7CXT8qCliNEBhbrkBp3Q0=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2/go.mod h1:Kj2pCkQ47klX1aAlDnlN/BUvwBiARqIJkc9iw1Up7q8=
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2/go.mod h1:Kj2pCkQ47klX1aAlDnlN/BUvwBiARqIJkc9iw1Up7q8=
|
||||||
|
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
|
||||||
|
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8=
|
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8=
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU=
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU=
|
||||||
|
@ -64,8 +82,8 @@ github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYr
|
||||||
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd h1:nzE1YQBdx1bq9IlZinHa+HVffy+NmVRoKr+wHN8fpLE=
|
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd h1:nzE1YQBdx1bq9IlZinHa+HVffy+NmVRoKr+wHN8fpLE=
|
||||||
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd/go.mod h1:C8yoIfvESpM3GD07OCHU7fqI7lhwyZ2Td1rbNbTAhnc=
|
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd/go.mod h1:C8yoIfvESpM3GD07OCHU7fqI7lhwyZ2Td1rbNbTAhnc=
|
||||||
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
|
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
|
||||||
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
|
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||||
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
|
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||||
github.com/ProtonMail/bcrypt v0.0.0-20210511135022-227b4adcab57/go.mod h1:HecWFHognK8GfRDGnFQbW/LiV7A3MX3gZVs45vk5h8I=
|
github.com/ProtonMail/bcrypt v0.0.0-20210511135022-227b4adcab57/go.mod h1:HecWFHognK8GfRDGnFQbW/LiV7A3MX3gZVs45vk5h8I=
|
||||||
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf h1:yc9daCCYUefEs69zUkSzubzjBbL+cmOXgnmt9Fyd9ug=
|
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf h1:yc9daCCYUefEs69zUkSzubzjBbL+cmOXgnmt9Fyd9ug=
|
||||||
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf/go.mod h1:o0ESU9p83twszAU8LBeJKFAAMX14tISa0yk4Oo5TOqo=
|
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf/go.mod h1:o0ESU9p83twszAU8LBeJKFAAMX14tISa0yk4Oo5TOqo=
|
||||||
|
@ -73,16 +91,18 @@ github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e h1:lCsqUUACrcM
|
||||||
github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e/go.mod h1:Og5/Dz1MiGpCJn51XujZwxiLG7WzvvjE5PRpZBQmAHo=
|
github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e/go.mod h1:Og5/Dz1MiGpCJn51XujZwxiLG7WzvvjE5PRpZBQmAHo=
|
||||||
github.com/ProtonMail/go-crypto v0.0.0-20230321155629-9a39f2531310/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE=
|
github.com/ProtonMail/go-crypto v0.0.0-20230321155629-9a39f2531310/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE=
|
||||||
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||||
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
|
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg=
|
||||||
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||||
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k=
|
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k=
|
||||||
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw=
|
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw=
|
||||||
github.com/ProtonMail/go-srp v0.0.7 h1:Sos3Qk+th4tQR64vsxGIxYpN3rdnG9Wf9K4ZloC1JrI=
|
github.com/ProtonMail/go-srp v0.0.7 h1:Sos3Qk+th4tQR64vsxGIxYpN3rdnG9Wf9K4ZloC1JrI=
|
||||||
github.com/ProtonMail/go-srp v0.0.7/go.mod h1:giCp+7qRnMIcCvI6V6U3S1lDDXDQYx2ewJ6F/9wdlJk=
|
github.com/ProtonMail/go-srp v0.0.7/go.mod h1:giCp+7qRnMIcCvI6V6U3S1lDDXDQYx2ewJ6F/9wdlJk=
|
||||||
github.com/ProtonMail/gopenpgp/v2 v2.7.4 h1:Vz/8+HViFFnf2A6XX8JOvZMrA6F5puwNvvF21O1mRlo=
|
github.com/ProtonMail/gopenpgp/v2 v2.7.3 h1:AJu1OI/1UWVYZl6QcCLKGu9OTngS2r52618uGlje84I=
|
||||||
github.com/ProtonMail/gopenpgp/v2 v2.7.4/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g=
|
github.com/ProtonMail/gopenpgp/v2 v2.7.3/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g=
|
||||||
github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM=
|
github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM=
|
||||||
github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ=
|
github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ=
|
||||||
|
github.com/VictoriaMetrics/easyproto v0.1.4 h1:r8cNvo8o6sR4QShBXQd1bKw/VVLSQma/V2KhTBPf+Sc=
|
||||||
|
github.com/VictoriaMetrics/easyproto v0.1.4/go.mod h1:QlGlzaJnDfFd8Lk6Ci/fuLxfTo3/GThPs2KH23mv710=
|
||||||
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e h1:KMVieI1/Ub++GYfnhyFPoGE3g5TUiG4srE3TMGr5nM4=
|
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e h1:KMVieI1/Ub++GYfnhyFPoGE3g5TUiG4srE3TMGr5nM4=
|
||||||
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e/go.mod h1:j5astEcUkZQX8lK+KKlQ3NRQ50f4EE8ZjyZpCz3mrH4=
|
github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e/go.mod h1:j5astEcUkZQX8lK+KKlQ3NRQ50f4EE8ZjyZpCz3mrH4=
|
||||||
github.com/aalpar/deheap v0.0.0-20210914013432-0cc84d79dec3 h1:hhdWprfSpFbN7lz3W1gM40vOgvSh1WCSMxYD6gGB4Hs=
|
github.com/aalpar/deheap v0.0.0-20210914013432-0cc84d79dec3 h1:hhdWprfSpFbN7lz3W1gM40vOgvSh1WCSMxYD6gGB4Hs=
|
||||||
|
@ -100,6 +120,8 @@ github.com/anacrolix/log v0.15.2/go.mod h1:m0poRtlr41mriZlXBQ9SOVZ8yZBkLjOkDhd5L
|
||||||
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
|
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
|
||||||
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
|
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
|
||||||
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
|
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
|
||||||
|
github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
|
||||||
|
github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
|
||||||
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc h1:LoL75er+LKDHDUfU5tRvFwxH0LjPpZN8OoG8Ll+liGU=
|
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc h1:LoL75er+LKDHDUfU5tRvFwxH0LjPpZN8OoG8Ll+liGU=
|
||||||
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc/go.mod h1:w648aMHEgFYS6xb0KVMMtZ2uMeemhiKCuD2vj6gY52A=
|
github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc/go.mod h1:w648aMHEgFYS6xb0KVMMtZ2uMeemhiKCuD2vj6gY52A=
|
||||||
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
|
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
|
||||||
|
@ -144,8 +166,10 @@ github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE=
|
||||||
github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bradenaw/juniper v0.15.2 h1:0JdjBGEF2jP1pOxmlNIrPhAoQN7Ng5IMAY5D0PHMW4U=
|
github.com/bits-and-blooms/bitset v1.14.2 h1:YXVoyPndbdvcEVcseEovVfp0qjJp7S+i5+xgp/Nfbdc=
|
||||||
github.com/bradenaw/juniper v0.15.2/go.mod h1:UX4FX57kVSaDp4TPqvSjkAAewmRFAfXf27BOs5z9dq8=
|
github.com/bits-and-blooms/bitset v1.14.2/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
|
||||||
|
github.com/bradenaw/juniper v0.13.1 h1:9P7/xeaYuEyqPuJHSHCJoisWyPvZH4FAi59BxJLh7F8=
|
||||||
|
github.com/bradenaw/juniper v0.13.1/go.mod h1:Z2B7aJlQ7xbfWsnMLROj5t/5FQ94/MkIdKC30J4WvzI=
|
||||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8=
|
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8=
|
||||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og=
|
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og=
|
||||||
github.com/buengese/sgzip v0.1.1 h1:ry+T8l1mlmiWEsDrH/YHZnCVWD2S3im1KLsyO+8ZmTU=
|
github.com/buengese/sgzip v0.1.1 h1:ry+T8l1mlmiWEsDrH/YHZnCVWD2S3im1KLsyO+8ZmTU=
|
||||||
|
@ -158,9 +182,11 @@ github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3z
|
||||||
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
|
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
|
||||||
github.com/calebcase/tmpfile v1.0.3 h1:BZrOWZ79gJqQ3XbAQlihYZf/YCV0H4KPIdM5K5oMpJo=
|
github.com/calebcase/tmpfile v1.0.3 h1:BZrOWZ79gJqQ3XbAQlihYZf/YCV0H4KPIdM5K5oMpJo=
|
||||||
github.com/calebcase/tmpfile v1.0.3/go.mod h1:UAUc01aHeC+pudPagY/lWvt2qS9ZO5Zzof6/tIUzqeI=
|
github.com/calebcase/tmpfile v1.0.3/go.mod h1:UAUc01aHeC+pudPagY/lWvt2qS9ZO5Zzof6/tIUzqeI=
|
||||||
|
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
|
||||||
|
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 h1:z0uK8UQqjMVYzvk4tiiu3obv2B44+XBsvgEJREQfnO8=
|
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 h1:z0uK8UQqjMVYzvk4tiiu3obv2B44+XBsvgEJREQfnO8=
|
||||||
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9/go.mod h1:Jl2neWsQaDanWORdqZ4emBl50J4/aRBBS4FyyG9/PFo=
|
github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9/go.mod h1:Jl2neWsQaDanWORdqZ4emBl50J4/aRBBS4FyyG9/PFo=
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
|
@ -168,9 +194,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
|
github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
|
||||||
|
github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
|
||||||
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
|
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
|
||||||
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
|
|
||||||
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
|
|
||||||
github.com/cloudsoda/go-smb2 v0.0.0-20231124195312-f3ec8ae2c891 h1:nPP4suUiNage0vvyEBgfAnhTPwwXhNqtHmSuiCIQwKU=
|
github.com/cloudsoda/go-smb2 v0.0.0-20231124195312-f3ec8ae2c891 h1:nPP4suUiNage0vvyEBgfAnhTPwwXhNqtHmSuiCIQwKU=
|
||||||
github.com/cloudsoda/go-smb2 v0.0.0-20231124195312-f3ec8ae2c891/go.mod h1:xFxVVe3plxwhM+6BgTTPByEgG8hggo8+gtRUkbc5W8Q=
|
github.com/cloudsoda/go-smb2 v0.0.0-20231124195312-f3ec8ae2c891/go.mod h1:xFxVVe3plxwhM+6BgTTPByEgG8hggo8+gtRUkbc5W8Q=
|
||||||
github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y=
|
github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y=
|
||||||
|
@ -180,10 +205,22 @@ github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQ
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/colinmarc/hdfs/v2 v2.4.0 h1:v6R8oBx/Wu9fHpdPoJJjpGSUxo8NhHIwrwsfhFvU9W0=
|
github.com/colinmarc/hdfs/v2 v2.4.0 h1:v6R8oBx/Wu9fHpdPoJJjpGSUxo8NhHIwrwsfhFvU9W0=
|
||||||
github.com/colinmarc/hdfs/v2 v2.4.0/go.mod h1:0NAO+/3knbMx6+5pCv+Hcbaz4xn/Zzbn9+WIib2rKVI=
|
github.com/colinmarc/hdfs/v2 v2.4.0/go.mod h1:0NAO+/3knbMx6+5pCv+Hcbaz4xn/Zzbn9+WIib2rKVI=
|
||||||
|
github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ=
|
||||||
|
github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI=
|
||||||
|
github.com/consensys/gnark-crypto v0.14.0 h1:DDBdl4HaBtdQsq/wfMwJvZNE80sHidrK3Nfrefatm0E=
|
||||||
|
github.com/consensys/gnark-crypto v0.14.0/go.mod h1:CU4UijNPsHawiVGNxe9co07FkzCeWHHrb1li/n1XoU0=
|
||||||
|
github.com/containerd/containerd v1.7.18 h1:jqjZTQNfXGoEaZdW1WwPU0RqSn1Bm2Ay/KJPUuO8nao=
|
||||||
|
github.com/containerd/containerd v1.7.18/go.mod h1:IYEk9/IO6wAPUz2bCMVUbsfXjzw5UNP5fLz4PsUygQ4=
|
||||||
|
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
||||||
|
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||||
|
github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
|
||||||
|
github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
|
||||||
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
|
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
|
||||||
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
|
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
|
||||||
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
||||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||||
|
github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E=
|
||||||
|
github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/cronokirby/saferith v0.33.0 h1:TgoQlfsD4LIwx71+ChfRcIpjkw+RPOapDEVxa+LhwLo=
|
github.com/cronokirby/saferith v0.33.0 h1:TgoQlfsD4LIwx71+ChfRcIpjkw+RPOapDEVxa+LhwLo=
|
||||||
|
@ -192,8 +229,18 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg=
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
|
||||||
|
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
|
||||||
|
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
||||||
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
|
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
|
||||||
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
|
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
|
||||||
|
github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY=
|
||||||
|
github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
|
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
|
||||||
|
github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
|
||||||
|
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
||||||
|
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00 h1:xJBhC00smQpSZw3Kr0ErMUBXhUSjYoLRm2szxdbRBL0=
|
github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00 h1:xJBhC00smQpSZw3Kr0ErMUBXhUSjYoLRm2szxdbRBL0=
|
||||||
github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00/go.mod h1:nNICngOdmNImBb/vuL+dSc0aIg3ryNATpjxThNoPw4g=
|
github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00/go.mod h1:nNICngOdmNImBb/vuL+dSc0aIg3ryNATpjxThNoPw4g=
|
||||||
github.com/dropbox/dropbox-sdk-go-unofficial/v6 v6.0.5 h1:FT+t0UEDykcor4y3dMVKXIiWJETBpRgERYTGlmMd7HU=
|
github.com/dropbox/dropbox-sdk-go-unofficial/v6 v6.0.5 h1:FT+t0UEDykcor4y3dMVKXIiWJETBpRgERYTGlmMd7HU=
|
||||||
|
@ -203,8 +250,8 @@ github.com/dsnet/try v0.0.3/go.mod h1:WBM8tRpUmnXXhY1U6/S8dt6UWdHTQ7y8A5YSkRCkq4
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
github.com/emersion/go-message v0.18.0 h1:7LxAXHRpSeoO/Wom3ZApVZYG7c3d17yCScYce8WiXA8=
|
github.com/emersion/go-message v0.17.0 h1:NIdSKHiVUx4qKqdd0HyJFD41cW8iFguM2XJnRZWQH04=
|
||||||
github.com/emersion/go-message v0.18.0/go.mod h1:Zi69ACvzaoV/MBnrxfVBPV3xWEuCmC2nEN39oJF4B8A=
|
github.com/emersion/go-message v0.17.0/go.mod h1:/9Bazlb1jwUNB0npYYBsdJ2EMOiiyN3m5UVHbY7GoNw=
|
||||||
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY=
|
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY=
|
||||||
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U=
|
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U=
|
||||||
github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9 h1:ATgqloALX6cHCranzkLb8/zjivwQ9DWWDCQRnxTPfaA=
|
github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9 h1:ATgqloALX6cHCranzkLb8/zjivwQ9DWWDCQRnxTPfaA=
|
||||||
|
@ -217,10 +264,10 @@ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||||
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/flynn/noise v1.0.1 h1:vPp/jdQLXC6ppsXSj/pM3W1BIJ5FEHE2TulSJBpb43Y=
|
github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ=
|
||||||
github.com/flynn/noise v1.0.1/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
|
github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
|
||||||
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
|
github.com/frankban/quicktest v1.14.5 h1:dfYrrRyLtiqT9GyKXgdh+k4inNeTvmGbuSgZ3lx3GhA=
|
||||||
github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
github.com/frankban/quicktest v1.14.5/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||||
|
@ -253,17 +300,16 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
|
||||||
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
|
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
|
||||||
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||||
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
|
|
||||||
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
|
|
||||||
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
|
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
|
||||||
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
|
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
|
||||||
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
|
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
|
||||||
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
|
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
|
||||||
github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8=
|
github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8=
|
||||||
github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
|
github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
|
||||||
github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8=
|
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
|
||||||
github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A=
|
github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I=
|
||||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
||||||
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
|
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
|
||||||
|
@ -308,6 +354,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
||||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||||
|
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||||
|
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
|
@ -318,6 +366,7 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||||
|
@ -329,8 +378,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf
|
||||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 h1:velgFPYr1X9TDwLIfkV7fWqsFlf7TeP11M/7kPd/dVI=
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
|
||||||
github.com/google/pprof v0.0.0-20240509144519-723abb6459b7/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
|
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
|
||||||
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
|
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
|
||||||
|
@ -343,18 +392,18 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA=
|
github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA=
|
||||||
github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E=
|
github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E=
|
||||||
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=
|
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
|
||||||
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
|
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
|
||||||
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||||
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
|
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
|
||||||
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||||
|
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
|
||||||
|
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/hanwen/go-fuse/v2 v2.5.1 h1:OQBE8zVemSocRxA4OaFJbjJ5hlpCmIWbGr7r0M4uoQQ=
|
github.com/hanwen/go-fuse/v2 v2.5.1 h1:OQBE8zVemSocRxA4OaFJbjJ5hlpCmIWbGr7r0M4uoQQ=
|
||||||
github.com/hanwen/go-fuse/v2 v2.5.1/go.mod h1:xKwi1cF7nXAOBCXujD5ie0ZKsxc8GGSA1rlMJc+8IJs=
|
github.com/hanwen/go-fuse/v2 v2.5.1/go.mod h1:xKwi1cF7nXAOBCXujD5ie0ZKsxc8GGSA1rlMJc+8IJs=
|
||||||
|
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
||||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
|
||||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
||||||
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
|
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
|
||||||
|
@ -374,6 +423,8 @@ github.com/henrybear327/Proton-API-Bridge v1.0.0 h1:gjKAaWfKu++77WsZTHg6FUyPC5W0
|
||||||
github.com/henrybear327/Proton-API-Bridge v1.0.0/go.mod h1:gunH16hf6U74W2b9CGDaWRadiLICsoJ6KRkSt53zLts=
|
github.com/henrybear327/Proton-API-Bridge v1.0.0/go.mod h1:gunH16hf6U74W2b9CGDaWRadiLICsoJ6KRkSt53zLts=
|
||||||
github.com/henrybear327/go-proton-api v1.0.0 h1:zYi/IbjLwFAW7ltCeqXneUGJey0TN//Xo851a/BgLXw=
|
github.com/henrybear327/go-proton-api v1.0.0 h1:zYi/IbjLwFAW7ltCeqXneUGJey0TN//Xo851a/BgLXw=
|
||||||
github.com/henrybear327/go-proton-api v1.0.0/go.mod h1:w63MZuzufKcIZ93pwRgiOtxMXYafI8H74D77AxytOBc=
|
github.com/henrybear327/go-proton-api v1.0.0/go.mod h1:w63MZuzufKcIZ93pwRgiOtxMXYafI8H74D77AxytOBc=
|
||||||
|
github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs=
|
||||||
|
github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
@ -395,14 +446,16 @@ github.com/jlaffaye/ftp v0.2.0 h1:lXNvW7cBu7R/68bknOX3MrRIIqZ61zELs1P2RAiA3lg=
|
||||||
github.com/jlaffaye/ftp v0.2.0/go.mod h1:is2Ds5qkhceAPy2xD6RLI6hmp/qysSoymZ+Z2uTnspI=
|
github.com/jlaffaye/ftp v0.2.0/go.mod h1:is2Ds5qkhceAPy2xD6RLI6hmp/qysSoymZ+Z2uTnspI=
|
||||||
github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8=
|
github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8=
|
||||||
github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY=
|
github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY=
|
||||||
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/jtolio/noiseconn v0.0.0-20231127013910-f6d9ecbf1de7 h1:JcltaO1HXM5S2KYOYcKgAV7slU0xPy1OcvrVgn98sRQ=
|
github.com/jtolio/noiseconn v0.0.0-20230111204749-d7ec1a08b0b8 h1:+A1uT26XjTsxiUUZjAAuveILWWy+Sy2TPX8OIgGvPQE=
|
||||||
github.com/jtolio/noiseconn v0.0.0-20231127013910-f6d9ecbf1de7/go.mod h1:MEkhEPFwP3yudWO0lj6vfYpLIB+3eIcuIW+e0AZzUQk=
|
github.com/jtolio/noiseconn v0.0.0-20230111204749-d7ec1a08b0b8/go.mod h1:f0ijQHcvHYAuxX6JA/JUr/Z0FVn12D9REaT/HAWVgP4=
|
||||||
github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 h1:G+9t9cEtnC9jFiTxyptEKuNIAbiN5ZCQzX2a74lj3xg=
|
github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 h1:G+9t9cEtnC9jFiTxyptEKuNIAbiN5ZCQzX2a74lj3xg=
|
||||||
github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004/go.mod h1:KmHnJWQrgEvbuy0vcvj00gtMqbvNn1L+3YUZLK/B92c=
|
github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004/go.mod h1:KmHnJWQrgEvbuy0vcvj00gtMqbvNn1L+3YUZLK/B92c=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
|
@ -437,8 +490,12 @@ github.com/lpar/date v1.0.0 h1:bq/zVqFTUmsxvd/CylidY4Udqpr9BOFrParoP6p0x/I=
|
||||||
github.com/lpar/date v1.0.0/go.mod h1:KjYe0dDyMQTgpqcUz4LEIeM5VZwhggjVx/V2dtc8NSo=
|
github.com/lpar/date v1.0.0/go.mod h1:KjYe0dDyMQTgpqcUz4LEIeM5VZwhggjVx/V2dtc8NSo=
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed h1:036IscGBfJsFIgJQzlui7nK1Ncm0tp2ktmPj8xO4N/0=
|
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
|
||||||
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k=
|
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
|
||||||
|
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||||
|
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||||
|
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||||
|
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
|
@ -454,20 +511,57 @@ github.com/minio/minio-go/v7 v7.0.74/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa
|
||||||
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
|
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
|
||||||
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
|
github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY=
|
||||||
|
github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU=
|
||||||
|
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
|
||||||
|
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
|
||||||
|
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
|
||||||
|
github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
|
||||||
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||||
github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg=
|
github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg=
|
||||||
github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4=
|
github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4=
|
||||||
|
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
||||||
|
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
||||||
|
github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg=
|
||||||
|
github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU=
|
||||||
|
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||||
|
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||||
|
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||||
|
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
||||||
|
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/ncw/swift/v2 v2.0.3 h1:8R9dmgFIWs+RiVlisCEfiQiik1hjuR0JnOkLxaP9ihg=
|
github.com/ncw/swift/v2 v2.0.3 h1:8R9dmgFIWs+RiVlisCEfiQiik1hjuR0JnOkLxaP9ihg=
|
||||||
github.com/ncw/swift/v2 v2.0.3/go.mod h1:cbAO76/ZwcFrFlHdXPjaqWZ9R7Hdar7HpjRXBfbjigk=
|
github.com/ncw/swift/v2 v2.0.3/go.mod h1:cbAO76/ZwcFrFlHdXPjaqWZ9R7Hdar7HpjRXBfbjigk=
|
||||||
|
github.com/nspcc-dev/dbft v0.3.1 h1:3qoc65CVJMtdL/627JZH+1Jz839LmdsVN52L4mlP5z8=
|
||||||
|
github.com/nspcc-dev/dbft v0.3.1/go.mod h1:BNvJkPKTE28r+qRaAk2C3VoL2J9qzox3fvEeJbh7EWE=
|
||||||
|
github.com/nspcc-dev/go-ordered-json v0.0.0-20240830112754-291b000d1f3b h1:DRG4cRqIOmI/nUPggMgR92Jxt63Lxsuz40m5QpdvYXI=
|
||||||
|
github.com/nspcc-dev/go-ordered-json v0.0.0-20240830112754-291b000d1f3b/go.mod h1:d3cUseu4Asxfo9/QA/w4TtGjM0AbC9ynyab+PfH+Bso=
|
||||||
|
github.com/nspcc-dev/hrw/v2 v2.0.2 h1:Vuc2Yu96MCv1YDUjErMuCt5tq+g/43/Y89u/XfyLkRI=
|
||||||
|
github.com/nspcc-dev/hrw/v2 v2.0.2/go.mod h1:XRsG20axGJfr0Ytcau/UcZ/9NF54RmUIqmoYKuuliSo=
|
||||||
|
github.com/nspcc-dev/neo-go v0.107.2 h1:BKKa+5qOrSPVYcLFyO0uUcAHh5lh9hhBIlqWdtMwbWQ=
|
||||||
|
github.com/nspcc-dev/neo-go v0.107.2/go.mod h1:Lzh/ZA2Goco2bmsoC9RtrrbZIA6xC943wmand20RMkY=
|
||||||
|
github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20241212130705-ea0a6114d2d6 h1:rTnsU+Y/bP1bLN/SNWmOKEexmSeniMQe5bOJxXNbXgg=
|
||||||
|
github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20241212130705-ea0a6114d2d6/go.mod h1:kVLzmbeJJdbIPF2bUYhD8YppIiLXnRQj5yqNZvzbOL0=
|
||||||
|
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea h1:mK0EMGLvunXcFyq7fBURS/CsN4MH+4nlYiqn6pTwWAU=
|
||||||
|
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea/go.mod h1:YzhD4EZmC9Z/PNyd7ysC7WXgIgURc9uCG1UWDeV027Y=
|
||||||
|
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12.0.20241205083504-335d9fe90f24 h1:+6KYoXnhs6LfGnn5f+4puuOj3M3MeofBw9iQn7LFG04=
|
||||||
|
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12.0.20241205083504-335d9fe90f24/go.mod h1:INZZXiTr9L7gWFeg3RBuB1laH2h9+vnomvg1XE42zQU=
|
||||||
|
github.com/nspcc-dev/rfc6979 v0.2.3 h1:QNVykGZ3XjFwM/88rGfV3oj4rKNBy+nYI6jM7q19hDI=
|
||||||
|
github.com/nspcc-dev/rfc6979 v0.2.3/go.mod h1:q3sCL1Ed7homjqYK8KmFSzEmm+7Ngyo7PePbZanhaDE=
|
||||||
|
github.com/nspcc-dev/tzhash v1.8.2 h1:ebRCbPoEuoqrhC6sSZmrT/jI3h1SzCWakxxV6gp5QAg=
|
||||||
|
github.com/nspcc-dev/tzhash v1.8.2/go.mod h1:SFwvvB1KyKm45vdWpcOCFpklkUEsXtddnHsk+zq298g=
|
||||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||||
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
|
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
|
||||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
|
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
||||||
github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU=
|
github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU=
|
||||||
|
@ -476,6 +570,10 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
|
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
|
||||||
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
|
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
|
||||||
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
|
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
|
||||||
|
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
|
||||||
github.com/oracle/oci-go-sdk/v65 v65.69.2 h1:lROMJ8/VakGOGObAWUxTVY2AX1wQCUIzVqfL4Fb2Ay8=
|
github.com/oracle/oci-go-sdk/v65 v65.69.2 h1:lROMJ8/VakGOGObAWUxTVY2AX1wQCUIzVqfL4Fb2Ay8=
|
||||||
github.com/oracle/oci-go-sdk/v65 v65.69.2/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0=
|
github.com/oracle/oci-go-sdk/v65 v65.69.2/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0=
|
||||||
github.com/panjf2000/ants/v2 v2.9.1 h1:Q5vh5xohbsZXGcD6hhszzGqB7jSSc2/CRr3QKIga8Kw=
|
github.com/panjf2000/ants/v2 v2.9.1 h1:Q5vh5xohbsZXGcD6hhszzGqB7jSSc2/CRr3QKIga8Kw=
|
||||||
|
@ -486,6 +584,8 @@ github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6
|
||||||
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
||||||
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 h1:XeOYlK9W1uCmhjJSsY78Mcuh7MVkNjTzmHx1yBzizSU=
|
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 h1:XeOYlK9W1uCmhjJSsY78Mcuh7MVkNjTzmHx1yBzizSU=
|
||||||
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14/go.mod h1:jVblp62SafmidSkvWrXyxAme3gaTfEtWwRPGz5cpvHg=
|
github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14/go.mod h1:jVblp62SafmidSkvWrXyxAme3gaTfEtWwRPGz5cpvHg=
|
||||||
|
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
|
||||||
|
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
|
||||||
github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28=
|
github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28=
|
||||||
|
@ -493,22 +593,22 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
|
github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
|
||||||
github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
|
github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
|
||||||
github.com/pkg/xattr v0.4.9 h1:5883YPCtkSd8LFbs13nXplj9g9tlrwoJRjgpgMu1/fE=
|
github.com/pkg/xattr v0.4.10 h1:Qe0mtiNFHQZ296vRgUjRCoPHPqH7VdTOrZx3g0T+pGA=
|
||||||
github.com/pkg/xattr v0.4.9/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU=
|
github.com/pkg/xattr v0.4.10/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig=
|
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
|
||||||
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
||||||
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
|
github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg=
|
||||||
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
|
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||||
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||||
github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE=
|
github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
|
||||||
github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
|
||||||
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
|
||||||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
|
||||||
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8 h1:Y258uzXU/potCYnQd1r6wlAnoMB68BiCkCcCnKx1SH8=
|
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8 h1:Y258uzXU/potCYnQd1r6wlAnoMB68BiCkCcCnKx1SH8=
|
||||||
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8/go.mod h1:bSJjRokAHHOhA+XFxplld8w2R/dXLH7Z3BZ532vhFwU=
|
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8/go.mod h1:bSJjRokAHHOhA+XFxplld8w2R/dXLH7Z3BZ532vhFwU=
|
||||||
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
|
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
|
||||||
|
@ -540,11 +640,11 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a
|
||||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
|
||||||
github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
|
github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA=
|
||||||
github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
|
github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
github.com/shabbyrobe/gocovmerge v0.0.0-20230507112040-c3350d9342df h1:S77Pf5fIGMa7oSwp8SQPp7Hb4ZiI38K3RNBKD2LLeEM=
|
github.com/shabbyrobe/gocovmerge v0.0.0-20190829150210-3e036491d500 h1:WnNuhiq+FOY3jNj6JXFT+eLN3CQ/oPIsDPRanvwsmbI=
|
||||||
github.com/shabbyrobe/gocovmerge v0.0.0-20230507112040-c3350d9342df/go.mod h1:dcuzJZ83w/SqN9k4eQqwKYMgmKWzg/KzJAURBhRL1tc=
|
github.com/shabbyrobe/gocovmerge v0.0.0-20190829150210-3e036491d500/go.mod h1:+njLrG5wSeoG4Ds61rFgEzKvenR2UHbjMoDHsczxly0=
|
||||||
github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI=
|
github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI=
|
||||||
github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk=
|
github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk=
|
||||||
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
|
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
|
||||||
|
@ -591,21 +691,29 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
|
||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
|
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 h1:xQdMZ1WLrgkkvOZ/LDQxjVxMLdby7osSh4ZEVa5sIjs=
|
||||||
|
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM=
|
||||||
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7 h1:Jtcrb09q0AVWe3BGe8qtuuGxNSHWGkTWr43kHTJ+CpA=
|
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7 h1:Jtcrb09q0AVWe3BGe8qtuuGxNSHWGkTWr43kHTJ+CpA=
|
||||||
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7/go.mod h1:suDIky6yrK07NnaBadCB4sS0CqFOvUK91lH7CR+JlDA=
|
github.com/t3rm1n4l/go-mega v0.0.0-20240219080617-d494b6a8ace7/go.mod h1:suDIky6yrK07NnaBadCB4sS0CqFOvUK91lH7CR+JlDA=
|
||||||
github.com/tailscale/depaware v0.0.0-20210622194025-720c4b409502/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8=
|
github.com/tailscale/depaware v0.0.0-20210622194025-720c4b409502/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8=
|
||||||
github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4=
|
github.com/testcontainers/testcontainers-go v0.33.0 h1:zJS9PfXYT5O0ZFXM2xxXfk4J5UMw/kRiISng037Gxdw=
|
||||||
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
|
github.com/testcontainers/testcontainers-go v0.33.0/go.mod h1:W80YpTa8D5C3Yy16icheD01UTDu+LmXIA2Keo+jWtT8=
|
||||||
github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4=
|
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
|
||||||
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
|
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
|
||||||
|
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
|
||||||
|
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
|
||||||
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ=
|
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ=
|
||||||
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
|
github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg=
|
||||||
|
github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ=
|
||||||
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
|
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
|
||||||
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
||||||
github.com/unknwon/goconfig v1.0.0 h1:rS7O+CmUdli1T+oDm7fYj1MwqNWtEJfNj+FqcUHML8U=
|
github.com/unknwon/goconfig v1.0.0 h1:rS7O+CmUdli1T+oDm7fYj1MwqNWtEJfNj+FqcUHML8U=
|
||||||
github.com/unknwon/goconfig v1.0.0/go.mod h1:qu2ZQ/wcC/if2u32263HTVC39PeOQRSmidQk3DuDFQ8=
|
github.com/unknwon/goconfig v1.0.0/go.mod h1:qu2ZQ/wcC/if2u32263HTVC39PeOQRSmidQk3DuDFQ8=
|
||||||
|
github.com/urfave/cli/v2 v2.27.4 h1:o1owoI+02Eb+K107p27wEX9Bb8eqIoZCfLXloLUSWJ8=
|
||||||
|
github.com/urfave/cli/v2 v2.27.4/go.mod h1:m4QzxcD2qpra4z7WhzEGn74WZLViBnMpb1ToCAKdGRQ=
|
||||||
github.com/willscott/go-nfs v0.0.3-0.20240425122109-91bc38957cc9 h1:IGSoH2aBagQ9VI8ZwbjHYIslta5vXfczegV1B4y9KqY=
|
github.com/willscott/go-nfs v0.0.3-0.20240425122109-91bc38957cc9 h1:IGSoH2aBagQ9VI8ZwbjHYIslta5vXfczegV1B4y9KqY=
|
||||||
github.com/willscott/go-nfs v0.0.3-0.20240425122109-91bc38957cc9/go.mod h1:Ql2ebUpEFm/a1CAY884di2XZkdcddfHZ6ONrAlhFev0=
|
github.com/willscott/go-nfs v0.0.3-0.20240425122109-91bc38957cc9/go.mod h1:Ql2ebUpEFm/a1CAY884di2XZkdcddfHZ6ONrAlhFev0=
|
||||||
github.com/willscott/go-nfs-client v0.0.0-20240104095149-b44639837b00 h1:U0DnHRZFzoIV1oFEZczg5XyPut9yxk9jjtax/9Bxr/o=
|
github.com/willscott/go-nfs-client v0.0.0-20240104095149-b44639837b00 h1:U0DnHRZFzoIV1oFEZczg5XyPut9yxk9jjtax/9Bxr/o=
|
||||||
|
@ -614,6 +722,8 @@ github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0 h1:j3un8DqYvvAOqK
|
||||||
github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0/go.mod h1:uxjoF2jEYT3+x+vC2KJddEGdk/LU8pRowXmyVMHSV5I=
|
github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0/go.mod h1:uxjoF2jEYT3+x+vC2KJddEGdk/LU8pRowXmyVMHSV5I=
|
||||||
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
|
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
|
||||||
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
|
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
|
||||||
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
|
||||||
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
||||||
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk=
|
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk=
|
||||||
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4=
|
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4=
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
@ -634,8 +744,8 @@ github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs=
|
||||||
github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
|
github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
|
||||||
github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
|
github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
|
||||||
github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
|
github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
|
||||||
go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0=
|
go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0=
|
||||||
go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ=
|
go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I=
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
|
@ -651,10 +761,14 @@ go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGX
|
||||||
go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
|
go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
|
||||||
go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
|
go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
|
||||||
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
|
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||||
go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo=
|
go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo=
|
||||||
go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
|
go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
|
||||||
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
|
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||||
|
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||||
goftp.io/server/v2 v2.0.1 h1:H+9UbCX2N206ePDSVNCjBftOKOgil6kQ5RAQNx5hJwE=
|
goftp.io/server/v2 v2.0.1 h1:H+9UbCX2N206ePDSVNCjBftOKOgil6kQ5RAQNx5hJwE=
|
||||||
goftp.io/server/v2 v2.0.1/go.mod h1:7+H/EIq7tXdfo1Muu5p+l3oQ6rYkDZ8lY7IM5d5kVdQ=
|
goftp.io/server/v2 v2.0.1/go.mod h1:7+H/EIq7tXdfo1Muu5p+l3oQ6rYkDZ8lY7IM5d5kVdQ=
|
||||||
golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
|
golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
|
||||||
|
@ -674,9 +788,8 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw
|
||||||
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||||
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
|
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
|
||||||
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
||||||
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
|
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||||
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
|
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
@ -687,8 +800,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
|
||||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
|
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 h1:kx6Ds3MlpiUHKj7syVnbp57++8WpuKPcR5yjLBjvLEA=
|
||||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
|
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
@ -702,9 +815,8 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
|
||||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||||
|
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs=
|
||||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||||
golang.org/x/mobile v0.0.0-20240716161057-1ad2df20a8b6 h1:/VlmIrkuLf2wzPjkZ8imSpckHoW7Y71h66dxbLHSpi8=
|
|
||||||
golang.org/x/mobile v0.0.0-20240716161057-1ad2df20a8b6/go.mod h1:TCsc78+c4cqb8IKEosz2LwJ6YRNkIjMuAYeHYjchGDE=
|
|
||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
|
@ -714,8 +826,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
|
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
|
||||||
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
@ -744,11 +856,13 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/
|
||||||
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
|
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
|
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||||
|
@ -757,10 +871,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
|
||||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
|
||||||
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
|
|
||||||
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -782,8 +894,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
@ -814,8 +926,10 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
@ -825,6 +939,7 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
@ -837,10 +952,10 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
|
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||||
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
|
@ -848,11 +963,9 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
||||||
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
||||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
|
||||||
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
|
||||||
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||||
golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk=
|
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
|
||||||
golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
|
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -864,14 +977,13 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
|
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||||
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
@ -922,8 +1034,8 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||||
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
|
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
|
||||||
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
|
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -981,8 +1093,9 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0=
|
google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 h1:QW9+G6Fir4VcRXVH8x3LilNAb6cxBGLa6+GM4hRwexE=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3/go.mod h1:kdrSS/OiLkPrNUpzD4aHgCq2rVuC/YRxok32HXZ4vRE=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
|
@ -998,8 +1111,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||||
google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA=
|
google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
|
||||||
google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0=
|
google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -1029,6 +1142,7 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
@ -1043,6 +1157,8 @@ moul.io/http2curl/v2 v2.3.0/go.mod h1:RW4hyBjTWSYDOxapodpNEtX0g5Eb16sxklBqmd2RHc
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
|
rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU=
|
||||||
|
rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA=
|
||||||
storj.io/common v0.0.0-20240812101423-26b53789c348 h1:Urs3fX+1Fyb+CFKGw0mCJV3MPR499WM+Vs6osw4Rqtk=
|
storj.io/common v0.0.0-20240812101423-26b53789c348 h1:Urs3fX+1Fyb+CFKGw0mCJV3MPR499WM+Vs6osw4Rqtk=
|
||||||
storj.io/common v0.0.0-20240812101423-26b53789c348/go.mod h1:XMpwKxc04HCBl4H5IFCGv1ca5Dm0tvH4NL7Jx+JhxuA=
|
storj.io/common v0.0.0-20240812101423-26b53789c348/go.mod h1:XMpwKxc04HCBl4H5IFCGv1ca5Dm0tvH4NL7Jx+JhxuA=
|
||||||
storj.io/drpc v0.0.35-0.20240709171858-0075ac871661 h1:hLvEV2RMTscX3JHPd+LSQCeTt8i1Q0Yt7U2EdfyMnaQ=
|
storj.io/drpc v0.0.35-0.20240709171858-0075ac871661 h1:hLvEV2RMTscX3JHPd+LSQCeTt8i1Q0Yt7U2EdfyMnaQ=
|
||||||
|
|
Loading…
Reference in a new issue