rclone: "OVH Public Cloud Archive" backend does not support copy from cold container

What is the problem you are having with rclone?

Adding support to OVH Public Cloud Archive is fine ( #1603 ) to create “cold” containers with rclone without having to create this container type manually before.

But for complete support, it lacks a restore feature to handle the time needed to “unfreeze” a file that is retrieved from this container. For me if I want to download a file from the web container administration page, I have a 10 minutes countdown before I can actually download the file (eg. http://pix.toile-libre.org/upload/original/1552233583.png )

What is your rclone version (output from rclone version)

clone --version
rclone v1.46.0-065-g58d9a3e1-beta
- os/arch: linux/amd64
- go version: go1.12

Which OS you are using and how many bits (eg Windows 7, 64 bit)

System: Host: thierrybo-desk Kernel: 4.19.0-0.bpo.2-amd64 x86_64 (64 bit) Desktop: Openbox 3.6.1 Distro: Devuan GNU/Linux ascii

Which cloud storage system are you using? (eg Google Drive)

OVH Public Cloud Archive

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone copy secret_thierrybo-desk_tests:rdiffdir .

A log from the command with the -vv flag (eg output from rclone -vv copy /tmp remote:tmp)

rclone -vv copy secret_thierrybo-desk_tests:duplicity .
2019/03/10 17:01:40 DEBUG : rclone: Version "v1.46.0-065-g58d9a3e1-beta" starting with parameters ["rclone" "-vv" "copy" "secret_thierrybo-desk_tests:duplicity" "."]
2019/03/10 17:01:40 DEBUG : Using config file from "/home/thierrybo/.config/rclone/rclone.conf"
2019/03/10 17:01:41 DEBUG : duplicity: Couldn't find file - need to transfer
2019/03/10 17:01:41 DEBUG : pacer: low level retry 1/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 10ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 2/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 20ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 3/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 40ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 4/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 80ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 5/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 160ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 6/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 320ms
2019/03/10 17:01:41 DEBUG : pacer: low level retry 7/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:41 DEBUG : pacer: Rate limited, increasing sleep to 640ms
2019/03/10 17:01:42 DEBUG : pacer: low level retry 8/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:42 DEBUG : pacer: Rate limited, increasing sleep to 1.28s
2019/03/10 17:01:42 DEBUG : pacer: low level retry 9/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:42 DEBUG : pacer: Rate limited, increasing sleep to 2s
2019/03/10 17:01:44 DEBUG : pacer: low level retry 10/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:44 DEBUG : duplicity: Received error: failed to open source object: HTTP Error: 429: 429 Too Many Requests - low level retry 1/10
2019/03/10 17:01:46 DEBUG : pacer: low level retry 1/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:48 DEBUG : pacer: low level retry 2/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:50 DEBUG : pacer: low level retry 3/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:52 DEBUG : pacer: low level retry 4/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:54 DEBUG : pacer: low level retry 5/10 (error HTTP Error: 429: 429 Too Many Requests)
2019/03/10 17:01:56 DEBUG : pacer: low level retry 6/10 (error HTTP Error: 429: 429 Too Many Requests)
.................................

If I run it again after the 10 minutes delay, it works fine.

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Comments: 28 (16 by maintainers)

Commits related to this issue

Most upvoted comments

I think this issue is done, barring the docs being updated.

Victory!

Hooray!

I’ve merged this to master now which means it will be in the latest beta in 15-30 mins and released in v1.47

I would like to add a bit to the docs about OVH Cold storage - can you help me?

I’d like to say something like this - can you check it and add any bits missing?

OVH Cold storage

To use rclone with OVH cold storage then use rclone config to set up a swift backend with OVH, choosing pca as the storage_policy.

(I’m not sure how objects get put into cold storage - I’d like to write that here).

To retrieve objects use rclone copy as normal. If the objects need to be retrieved from cold storage then rclone will ask for them all to be retrieved and it will wait at the end of the sync with a message like this

2019/03/23 13:06:33 NOTICE: Received retry after error - sleeping until 2019-03-23T13:16:33.481657164+01:00 (9m59.99985121s)

Rclone will wait for the time specified then retry the copy.

Yes it looks good, thanks. I did not yet tried to copy a whole directory, but I’m sure it will unfreeze files sequentially? ie. trying to get the first file, wait for it some hours, then unfreeze the second file, wait some hours and so on. I bet it would be very more complicated to unfreeze all files within the path on first pass to initiate the unfreeze process, then copy them after the delay (as each file may have different delays)

Here is with the last build. This one is only ten minutes, I will edit this when finished:

Ah, so that looked like it worked!

What do you think - is that good enough?

Here is the code without the debug printing

https://beta.rclone.org/branch/v1.46.0-104-gea8360c3-fix-3041-swift-retry-after-beta/ (uploaded in 15-30 mins)

i am not a developer, but it seems OVH/pca API provides specific headers policy_retrieval_delay and policy_retrieval_state to handle this. If a GET request returns a delay in policy_retrieval_delay , maybe rclone cloud just wait this retrieval delay and not die.

Or if no delay is returned with headers, maybe adding an Rclone only parameter to manually enter this delay.