-
Notifications
You must be signed in to change notification settings - Fork 480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(services/aliyun-drive): support AliyunDrive #4585
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot! Only some small changes.
Done. Sure, I'll fix them later today. |
Hi, it's not a requirement to implement |
Well. that's fine. I will raise another PR to improve it. Let's make it work at first. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, bravo work!
Great work! Thank you! |
I'll set up the test credentials for this service. |
thank you! |
feat(services/aliyun-drive): add support for AliyunDrive
Trying to use this in production but this implementation is too different from that of OneDrive and Google Drive. The major question is that: Why this OpenDAL implement requires refresh_token and client_id? The AliyunDrive API supports OAuth. IMHO, we can just send an access_token to the operator and let the host app handle the auth part. Not all users would have the refresh_token. By design, AliyunDrive does not generate refresh_token for non-server applications https://www.yuque.com/aliyundrive/zpfszx/eam8ls1lmawwwksv Sample token redeem response: {
"token_type": "Bearer",
"access_token": "ey...",
"refresh_token": null,
"expires_in": 2592000
} |
Closing #3415. Ready for review.
API documentation reference: https://www.yuque.com/aliyundrive/zpfszx/gogo34oi2gy98w5d
Required Environment Variables:
To run behavior tests, use the following command:
Note that the test threads should be set to 1 as it may fail part of the test due to rate limit.
AliyunDrive has a feature called Rapid Upload, but it is difficult to implement completely because the
MultipartWriter
trait design isn't well compatible with this feature at present. Therefore, I have only implemented it on thewrite_once
method.Let's discuss proposing a new
RapiduploadWriter
for this kind of rapid-upload featured service together in the future if you would.