mirror of
https://github.com/rclone/rclone.git
synced 2026-01-08 03:23:26 +00:00
Compare commits
1 Commits
master
...
fix-9073-m
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8bcb1bde1e |
@@ -28,7 +28,6 @@ directories to and from different cloud storage providers.
|
|||||||
- Alibaba Cloud (Aliyun) Object Storage System (OSS) [:page_facing_up:](https://rclone.org/s3/#alibaba-oss)
|
- Alibaba Cloud (Aliyun) Object Storage System (OSS) [:page_facing_up:](https://rclone.org/s3/#alibaba-oss)
|
||||||
- Amazon S3 [:page_facing_up:](https://rclone.org/s3/)
|
- Amazon S3 [:page_facing_up:](https://rclone.org/s3/)
|
||||||
- ArvanCloud Object Storage (AOS) [:page_facing_up:](https://rclone.org/s3/#arvan-cloud-object-storage-aos)
|
- ArvanCloud Object Storage (AOS) [:page_facing_up:](https://rclone.org/s3/#arvan-cloud-object-storage-aos)
|
||||||
- Bizfly Cloud Simple Storage [:page_facing_up:](https://rclone.org/s3/#bizflycloud)
|
|
||||||
- Backblaze B2 [:page_facing_up:](https://rclone.org/b2/)
|
- Backblaze B2 [:page_facing_up:](https://rclone.org/b2/)
|
||||||
- Box [:page_facing_up:](https://rclone.org/box/)
|
- Box [:page_facing_up:](https://rclone.org/box/)
|
||||||
- Ceph [:page_facing_up:](https://rclone.org/s3/#ceph)
|
- Ceph [:page_facing_up:](https://rclone.org/s3/#ceph)
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
name: BizflyCloud
|
|
||||||
description: Bizfly Cloud Simple Storage
|
|
||||||
region:
|
|
||||||
hn: Ha Noi
|
|
||||||
hcm: Ho Chi Minh
|
|
||||||
endpoint:
|
|
||||||
hn.ss.bfcplatform.vn: Hanoi endpoint
|
|
||||||
hcm.ss.bfcplatform.vn: Ho Chi Minh endpoint
|
|
||||||
acl: {}
|
|
||||||
bucket_acl: true
|
|
||||||
quirks:
|
|
||||||
force_path_style: true
|
|
||||||
list_url_encode: false
|
|
||||||
use_multipart_etag: false
|
|
||||||
use_already_exists: false
|
|
||||||
@@ -116,7 +116,6 @@ WebDAV or S3, that work out of the box.)
|
|||||||
{{< provider name="Akamai Netstorage" home="https://www.akamai.com/us/en/products/media-delivery/netstorage.jsp" config="/netstorage/" >}}
|
{{< provider name="Akamai Netstorage" home="https://www.akamai.com/us/en/products/media-delivery/netstorage.jsp" config="/netstorage/" >}}
|
||||||
{{< provider name="Alibaba Cloud (Aliyun) Object Storage System (OSS)" home="https://www.alibabacloud.com/product/oss/" config="/s3/#alibaba-oss" >}}
|
{{< provider name="Alibaba Cloud (Aliyun) Object Storage System (OSS)" home="https://www.alibabacloud.com/product/oss/" config="/s3/#alibaba-oss" >}}
|
||||||
{{< provider name="Amazon S3" home="https://aws.amazon.com/s3/" config="/s3/" >}}
|
{{< provider name="Amazon S3" home="https://aws.amazon.com/s3/" config="/s3/" >}}
|
||||||
{{< provider name="Bizfly Cloud Simple Storage" home="https://bizflycloud.vn/" config="/s3/#bizflycloud" >}}
|
|
||||||
{{< provider name="Backblaze B2" home="https://www.backblaze.com/cloud-storage" config="/b2/" >}}
|
{{< provider name="Backblaze B2" home="https://www.backblaze.com/cloud-storage" config="/b2/" >}}
|
||||||
{{< provider name="Box" home="https://www.box.com/" config="/box/" >}}
|
{{< provider name="Box" home="https://www.box.com/" config="/box/" >}}
|
||||||
{{< provider name="Ceph" home="http://ceph.com/" config="/s3/#ceph" >}}
|
{{< provider name="Ceph" home="http://ceph.com/" config="/s3/#ceph" >}}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ The S3 backend can be used with a number of different providers:
|
|||||||
{{< provider name="China Mobile Ecloud Elastic Object Storage (EOS)" home="https://ecloud.10086.cn/home/product-introduction/eos/" config="/s3/#china-mobile-ecloud-eos" >}}
|
{{< provider name="China Mobile Ecloud Elastic Object Storage (EOS)" home="https://ecloud.10086.cn/home/product-introduction/eos/" config="/s3/#china-mobile-ecloud-eos" >}}
|
||||||
{{< provider name="Cloudflare R2" home="https://blog.cloudflare.com/r2-open-beta/" config="/s3/#cloudflare-r2" >}}
|
{{< provider name="Cloudflare R2" home="https://blog.cloudflare.com/r2-open-beta/" config="/s3/#cloudflare-r2" >}}
|
||||||
{{< provider name="Arvan Cloud Object Storage (AOS)" home="https://www.arvancloud.com/en/products/cloud-storage" config="/s3/#arvan-cloud" >}}
|
{{< provider name="Arvan Cloud Object Storage (AOS)" home="https://www.arvancloud.com/en/products/cloud-storage" config="/s3/#arvan-cloud" >}}
|
||||||
{{< provider name="Bizfly Cloud Simple Storage" home="https://bizflycloud.vn/" config="/s3/#bizflycloud" >}}
|
|
||||||
{{< provider name="Cubbit DS3" home="https://cubbit.io/ds3-cloud" config="/s3/#Cubbit" >}}
|
{{< provider name="Cubbit DS3" home="https://cubbit.io/ds3-cloud" config="/s3/#Cubbit" >}}
|
||||||
{{< provider name="DigitalOcean Spaces" home="https://www.digitalocean.com/products/object-storage/" config="/s3/#digitalocean-spaces" >}}
|
{{< provider name="DigitalOcean Spaces" home="https://www.digitalocean.com/products/object-storage/" config="/s3/#digitalocean-spaces" >}}
|
||||||
{{< provider name="Dreamhost" home="https://www.dreamhost.com/cloud/storage/" config="/s3/#dreamhost" >}}
|
{{< provider name="Dreamhost" home="https://www.dreamhost.com/cloud/storage/" config="/s3/#dreamhost" >}}
|
||||||
@@ -4537,36 +4536,6 @@ server_side_encryption =
|
|||||||
storage_class =
|
storage_class =
|
||||||
```
|
```
|
||||||
|
|
||||||
### BizflyCloud {#bizflycloud}
|
|
||||||
|
|
||||||
[Bizfly Cloud Simple Storage](https://bizflycloud.vn/simple-storage) is an
|
|
||||||
S3-compatible service with regions in Hanoi (HN) and Ho Chi Minh City (HCM).
|
|
||||||
|
|
||||||
Use the endpoint for your region:
|
|
||||||
|
|
||||||
- HN: `hn.ss.bfcplatform.vn`
|
|
||||||
- HCM: `hcm.ss.bfcplatform.vn`
|
|
||||||
|
|
||||||
A minimal configuration looks like this.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[bizfly]
|
|
||||||
type = s3
|
|
||||||
provider = BizflyCloud
|
|
||||||
env_auth = false
|
|
||||||
access_key_id = YOUR_ACCESS_KEY
|
|
||||||
secret_access_key = YOUR_SECRET_KEY
|
|
||||||
region = HN
|
|
||||||
endpoint = hn.ss.bfcplatform.vn
|
|
||||||
location_constraint =
|
|
||||||
acl =
|
|
||||||
server_side_encryption =
|
|
||||||
storage_class =
|
|
||||||
```
|
|
||||||
|
|
||||||
Switch `region` and `endpoint` to `HCM` and `hcm.ss.bfcplatform.vn` for Ho Chi
|
|
||||||
Minh City.
|
|
||||||
|
|
||||||
### Ceph
|
### Ceph
|
||||||
|
|
||||||
[Ceph](https://ceph.com/) is an open-source, unified, distributed
|
[Ceph](https://ceph.com/) is an open-source, unified, distributed
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/rclone/rclone/fs/list"
|
"github.com/rclone/rclone/fs/list"
|
||||||
"github.com/rclone/rclone/fs/walk"
|
"github.com/rclone/rclone/fs/walk"
|
||||||
"github.com/rclone/rclone/lib/transform"
|
"github.com/rclone/rclone/lib/transform"
|
||||||
|
"golang.org/x/sync/semaphore"
|
||||||
"golang.org/x/text/unicode/norm"
|
"golang.org/x/text/unicode/norm"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ type March struct {
|
|||||||
srcListDir listDirFn // function to call to list a directory in the src
|
srcListDir listDirFn // function to call to list a directory in the src
|
||||||
dstListDir listDirFn // function to call to list a directory in the dst
|
dstListDir listDirFn // function to call to list a directory in the dst
|
||||||
transforms []matchTransformFn
|
transforms []matchTransformFn
|
||||||
|
newObjectSem *semaphore.Weighted // make sure we don't call too many NewObjects simultaneously
|
||||||
}
|
}
|
||||||
|
|
||||||
// Marcher is called on each match
|
// Marcher is called on each match
|
||||||
@@ -78,6 +80,8 @@ func (m *March) init(ctx context.Context) {
|
|||||||
if m.Fdst.Features().CaseInsensitive || ci.IgnoreCaseSync {
|
if m.Fdst.Features().CaseInsensitive || ci.IgnoreCaseSync {
|
||||||
m.transforms = append(m.transforms, strings.ToLower)
|
m.transforms = append(m.transforms, strings.ToLower)
|
||||||
}
|
}
|
||||||
|
// Only allow ci.Checkers simultaneous calls to NewObject
|
||||||
|
m.newObjectSem = semaphore.NewWeighted(int64(ci.Checkers))
|
||||||
}
|
}
|
||||||
|
|
||||||
// srcOrDstKey turns a directory entry into a sort key using the defined transforms.
|
// srcOrDstKey turns a directory entry into a sort key using the defined transforms.
|
||||||
@@ -461,7 +465,12 @@ func (m *March) processJob(job listDirJob) ([]listDirJob, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
leaf := path.Base(t.src.Remote())
|
leaf := path.Base(t.src.Remote())
|
||||||
|
if err := m.newObjectSem.Acquire(m.Ctx, 1); err != nil {
|
||||||
|
t.dstMatch <- nil
|
||||||
|
continue
|
||||||
|
}
|
||||||
dst, err := m.Fdst.NewObject(m.Ctx, path.Join(job.dstRemote, leaf))
|
dst, err := m.Fdst.NewObject(m.Ctx, path.Join(job.dstRemote, leaf))
|
||||||
|
m.newObjectSem.Release(1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dst = nil
|
dst = nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user