apache / opendal

Apache OpenDAL: One Layer, All Storage.
https://opendal.apache.org
Apache License 2.0
3.49k stars 488 forks source link

feat: Add iCloud Drive/Photo support #2627

Open Xuanwo opened 1 year ago

Xuanwo commented 1 year ago

I am now an iCloud user, thanks to my wife who bought me a new iPhone. I would like to enable iCloud Drive/Photo support so that I can access and edit them without using my phone (since I do not yet have a MacBook).

This issue is being used to track my progress in adding iCloud support. It's worth noting that developing for Apple services can be challenging outside of the Apple ecosystem.

Context

This issue is to adding iCloud Drive/Phone support first (since I'm not ready to register an Apple Developer account).

Blockers

References

JasCodes commented 1 year ago

@Xuanwo On back burner atm?

Xuanwo commented 1 year ago

@Xuanwo On back burner atm?

Not working on this issue so far.

Xuanwo commented 11 months ago

@bokket is interested in addressing this issue. He has implemented a quick hack for iCloud as follows:

image

bokket commented 10 months ago

Hi.I have to discuss this here.Stat cannot be obtained according to path.Because in iCloud, allDrivewsid came to the send request directory or file, but the problem is that the variable can only be listed by folder::com.apple.clouddocs::root get.And then only knew the id. 深度截图_选择区域_20240107235157

bokket commented 10 months ago

Current idea. We can first get the drivewsid and name of all directory from the root and save them in iCloudDrive: HashMap <string, String>. This may be forced user to enter the path of \root\path\opendal.They will be searched for the name of ""and drivewsid to folder::com.apple.clouddocs::root below.Get Name with the HashMap index for request iCloud server. So which came first, the chicken or the egg?

Xuanwo commented 10 months ago

Because in iCloud, allDrivewsid came to the send request directory or file, but the problem is that the variable can only be listed by folder::com.apple.clouddocs::root get.And then only knew the id.

We can maintain an id-path mapping in memory.

bokket commented 10 months ago

Apple Icloud Drive Roadmap:

Others

ADP:iCloud Advanced Data Protection (PCS)

Of course, I would also like to extract and write a separate experimental icloud library related to raw and http-utils apart, which will be beneficial for future learners interested in Photos or other applications to learn OpenDAL.