iterate-ch / cyberduck

Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
https://cyberduck.io/
GNU General Public License v3.0
3.37k stars 294 forks source link

Support for OVH Public Cloud Archives #11748

Open cyberduck opened 3 years ago

cyberduck commented 3 years ago

3a2020d created the issue

Would it be possible to get support for OVH cloud archive (like glacier from AWS)?

Public Cloud Archive is a cold storage offer designed to host large volumes of data without any size limit at a very attractive price. Intended for data that is not accessed often, a request must be made in advance and there is a delay prior to recovering data. The time delay will vary depending on the age of data and the frequency of data access.

VictorHachard commented 2 years ago

@dkocher, I opened this issue, is there anything new, is there a technical problem? Can I help code this feature?

dkocher commented 2 years ago

@dkocher, I opened this issue, is there anything new, is there a technical problem? Can I help code this feature?

I haven't looked into this but according to the feature page you should be able to connect using either OpenStack Swift or SFTP.

The storage solution used in Cloud Archive clusters is OpenStack Swift. This is a standard API that can be used directly by conventional tools. In addition to access via the Swift API, you can use your favoured tools, such as SFTP, SCP and rsync, for data transfer.

VictorHachard commented 2 years ago

Hi, I can connect with the OpenStack Swift k3 and the upload work like a charm, but there is no defreezing support. So when you want to download something, there is an error message. In reality, when clicking on 'download' cyberduck request the defreezing process (I can see that in the OVH PCA interface). And I know 10 m later I can download the file. The thing you can do to improve cyberduck is to handle this error message (I haven't found the availability date in this error message, and there is certainly an HTTP request to know the availability date).

167098061-6aba6767-a435-446d-8243-4215e775f4f4

10m later.

167099828-92d045e9-0060-4738-aa08-11d75be3d3f1

If you have any questions or if you need help with this subject fell free to ask.

dkocher commented 2 years ago

Contributions are certainly welcome. One would have to implement the Restore^1 interface.

VictorHachard commented 2 years ago

I found an explanation for the error 429 -> https://docs.ovh.com/gb/en/storage/pca/unlock/

So the solution in the implementation of the Restore interface is to check the status in the isResorable function to have the sealed response. For the restore function is to try to download the file and wait for the unsealing process to end.

In the coming week I will try to test and implement this.

dkocher commented 2 years ago

I found an explanation for the error 429 -> https://docs.ovh.com/gb/en/storage/pca/unlock/

So the solution in the implementation of the Restore interface is to check the status in the isResorable function to have the sealed response. For the restore function is to try to download the file and wait for the unsealing process to end.

In the coming week I will try to test and implement this.

The function isRestorable should be able to determine statically from the PathAttributes in Path determining if an object is archived. It cannot execute a long running remote action as it does not declare a BackgroundException in the method declaration. In Amazon S3 this can be determined by the storage class set on the object.