`AbortSignal.timeout` will cause a timeout when transferring large blobs. by using `setTimeout` currently, the timeout only covers the phase of establishing a connection.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved reliability of request cancellation and timeout handling for HTTP requests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3344](https://linear.app/affine-design/issue/BS-3344/改进请求超时提示)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved internal request timeout handling for cloud operations, resulting in more robust and reliable network requests. No changes to user-facing features or functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Change the query for querying quota of Cloud Blob Storage.
The original query used new fields, which caused errors in the old version of the server. This PR uses a simpler query to ensure compatibility.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added the ability to retrieve a workspace's blob storage quota, including both the raw limit and a human-readable format, via a new query.
- **Bug Fixes**
- Updated quota retrieval to use the new blob-specific quota query for improved accuracy.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3332](https://linear.app/affine-design/issue/BS-3332/错误信息)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved error messages when file uploads exceed the allowed size, now showing the maximum file size limit in a human-readable format.
- Enhanced status updates for oversized files by displaying clear error messages during blob uploads.
- **Style**
- Error messages for file size limits are now more user-friendly and informative.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Simplified search menu logic by removing unnecessary filtering and parameters from menu item generation. No changes to visible functionality.
- **Bug Fixes**
- Improved search index matching to retrieve all relevant entries, enhancing search accuracy.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
We should not use async on `connect` and `disconnect`, for `WebSocketConnection` will never connect when offline.
We should handle the connection status of each storage in sync, using the `connection.waitForConnect`
This PR also puts the connection reference count on the `connect` and disconnect`