bug: presign_read not working with service principal credentials (azdls and azblob)
- Dominant language
- Rust
- Stars
- 5.4k
- Forks
- 825
- Avg merge
- 1d 14m
- Merged PRs (30d)
- 127
Description
### OpenDAL version or commit
0.47.1 (Python)
### Affected service or component
services/adls
### Describe the bug
s3/minio with account name and account key - presign_read working fine
azblob with account_name and account_key - presign_read working fine.
But
azdls - dfs endpoint - account name and account key - not working - presign => operation is not supported
azdls - dfs endpoint - client id, client secret, tenant id - not working - presign => operation is not supported
azblob - blob endpoint - client id, client secret, tenant id - not working - Bearer token can't be used in query string
### Steps to Reproduce
from opendal import AsyncOperator
op = AsyncOperator(...cred...)
signed = await op.presign_read(file_path, seconds)
print(signed.url)
Try these with azdls or service principal credentials
### Actual Behavior
It is not returning pre signed URL for ADLS
### Expected Behavior
It should return pre signed URL for ADLS
### Additional Context
_No response_
### Reproduction confirmation
- [x] I reproduced this issue against the affected component. For a service-specific report, I used the actual service rather than only a mock, emulator, or source-code analysis.
### Are you willing to submit a PR to fix this bug?
- [ ] Yes, I would like to submit a PR.
Contributor guide
Research direction
The affected component is services/adls; start by reading the ADLS presign_read handling and reproducing the operation with account-key and service-principal credentials. Done means ADLS returns a usable pre-signed URL for the reported endpoint and credential combinations, or clearly reports an unsupported case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, python, rust
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100