From e76a5e4c12c58325955dd15c7dda1cae8b603a45 Mon Sep 17 00:00:00 2001 From: fyears <1142836+fyears@users.noreply.github.com> Date: Wed, 23 Mar 2022 10:01:08 +0800 Subject: [PATCH] add version desc --- README.md | 8 ++-- docs/browser_env_cors.md | 4 +- docs/s3_cors_configure.md | 2 +- docs/services_connectable_or_not.md | 70 ++++++++++++++--------------- 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index d8e27a5..1a73b73 100644 --- a/README.md +++ b/README.md @@ -61,8 +61,8 @@ Additionally, the plugin author may occasionally visit Obsidian official forum a - Prepare your S3 (-compatible) service information: [endpoint, region](https://docs.aws.amazon.com/general/latest/gr/s3.html), [access key id, secret access key](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-your-credentials.html), bucket name. The bucket should be empty and solely for syncing a vault. - About CORS: - - If you are using Obsidian >= 0.13.25, you can skip this CORS part. - - If you are using Obsidian < 0.13.25, you need to configure (enable) [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) for requests from `app://obsidian.md` and `capacitor://localhost` and `http://localhost`, and add at least `ETag` into exposed headers. Full example is [here](./docs/s3_cors_configure.md). It's unfortunately required, because the plugin sends requests from a browser-like envirement. And those addresses are tested and found on desktop and ios and android. + - If you are using Obsidian desktop >= 0.13.25 or mobile >= 1.1.1, you can skip this CORS part. + - If you are using Obsidian desktop < 0.13.25 or mobile < 1.1.1, you need to configure (enable) [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) for requests from `app://obsidian.md` and `capacitor://localhost` and `http://localhost`, and add at least `ETag` into exposed headers. Full example is [here](./docs/s3_cors_configure.md). It's unfortunately required, because the plugin sends requests from a browser-like envirement. And those addresses are tested and found on desktop and ios and android. - Download and enable this plugin. - Enter your information to the settings of this plugin. - If you want to enable end-to-end encryption, also set a password in settings. If you do not specify a password, the files and folders are synced in plain, original content to the cloud. @@ -87,8 +87,8 @@ Additionally, the plugin author may occasionally visit Obsidian official forum a ### webdav - About CORS: - - If you are using Obsidian >= 0.13.25, you can skip this CORS part. - - If you are using Obsidian < 0.13.25: + - If you are using Obsidian desktop >= 0.13.25 or mobile >= 1.1.1, you can skip this CORS part. + - If you are using Obsidian desktop < 0.13.25 or mobile < 1.1.1: - The webdav server has to be enabled CORS for requests from `app://obsidian.md` and `capacitor://localhost` and `http://localhost`, **AND** all webdav HTTP methods, **AND** all webdav headers. These are required, because Obsidian mobile works like a browser and mobile plugins are limited by CORS policies unless under a upgraded Obsidian version. - Popular software NextCloud, OwnCloud, `rclone serve webdav` do **NOT** enable CORS by default. If you are using any of them, you should evaluate the risk, and find a way to enable CORS, before using this plugin, or use a upgraded Obsidian version. - The plugin is tested successfully under python package [`wsgidav` (version 4.0)](https://github.com/mar10/wsgidav). See [this issue](https://github.com/mar10/wsgidav/issues/239) for some details. diff --git a/docs/browser_env_cors.md b/docs/browser_env_cors.md index 559ab7c..33ab085 100644 --- a/docs/browser_env_cors.md +++ b/docs/browser_env_cors.md @@ -4,6 +4,6 @@ The plugin is developed for the browser environment. The "fake" browser behind t [MDN has a doc about CORS.](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) -From Obsidian version >= insider 0.13.25, Obsidian [provides a new API `requiestUrl`](https://forum.obsidian.md/t/obsidian-release-v0-13-25-insider-build/32701), that allows the plugin to fully bypass the CORS issue. As of Mar 2022, the latest public-released Obsidian desktop has supported this API, but the Obsidian mobile still stays in insider. +From Obsidian desktop >= 0.13.25 or mobile >= 1.1.1, Obsidian [provides a new API `requiestUrl`](https://forum.obsidian.md/t/obsidian-release-v0-13-25-insider-build/32701), that allows the plugin to fully bypass the CORS issue. As of Mar 2022, the latest public-released Obsidian desktop has supported this API, but the Obsidian mobile still stays in insider. -For using this plugin in Obsidian version < 0.13.25, we need to configure the server side to return the header `Access-Control-Allow-Origin` allowing the origins `app://obsidian.md` and `capacitor://localhost` and `http://localhost`. Here is an example [configuration for Amazon S3](./s3_cors_configure.md). +For using this plugin in Obsidian desktop < 0.13.25 or mobile < 1.1.1, we need to configure the server side to return the header `Access-Control-Allow-Origin` allowing the origins `app://obsidian.md` and `capacitor://localhost` and `http://localhost`. Here is an example [configuration for Amazon S3](./s3_cors_configure.md). diff --git a/docs/s3_cors_configure.md b/docs/s3_cors_configure.md index 1c6a95f..b73fd4d 100644 --- a/docs/s3_cors_configure.md +++ b/docs/s3_cors_configure.md @@ -1,6 +1,6 @@ # How To Configure S3 CORS Rules -If you are using the latest version of this plugin AND Obsidian >= 0.13.25, you do not need to configure it any more. If you are using Obsidian < 0.13.25, you are required to configure the rules as following. +If you are using the latest version of this plugin AND Obsidian desktop >= 0.13.25, mobile >= 1.1.1, you do not need to configure it any more. If you are using Obsidian desktop < 0.13.25, moble < 1.1.1, you are required to configure the rules as following. Thanks to [@NAL100 in the Discussion](https://github.com/fyears/remotely-save/discussions/28). diff --git a/docs/services_connectable_or_not.md b/docs/services_connectable_or_not.md index eab2bc3..fa1660d 100644 --- a/docs/services_connectable_or_not.md +++ b/docs/services_connectable_or_not.md @@ -2,41 +2,41 @@ Here is an overview of the connectability ("connectable" or "not connectable" or "in the plan" or "never") to some services by this plugin. -The plugin works under the browser environment in Obsidian, so CORS is an issue. Obsidian starts to provide a rich API `requestUrl` for version >= 0.13.25 to bypass the CORS issue. But if the users are still using an older version of Obsidian, they need to configure CORS on server. +The plugin works under the browser environment in Obsidian, so CORS is an issue. Obsidian starts to provide a rich API `requestUrl` for desktop version >= 0.13.25, mobile >= 1.1.1 to bypass the CORS issue. But if the users are still using an older version of Obsidian, they need to configure CORS on server. The list is for information purposes only. -| Service | Connectable | by S3 | by WebDAV | by other protocol | can bypass CORS issue in Obsidian>=0.13.25 | need CORS config in Obsidian<0.13.25 | -| ------------------------------------------------------------------------------------- | ----------- | ----- | --------- | ---------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------ | -| Amazon S3 | Yes | Yes | | | Yes | [CORS config needed.](./s3_cors_configure.md) | -| Tencent Cloud - Cloud Object Storage (COS) 腾讯云对象存储 | Yes | Yes | | | Yes | CORS config needed. | -| Alibaba Cloud - Object Storage Service 阿里云对象存储 | Yes | Yes | | | Yes | CORS config needed. | -| Backblaze B2 Cloud Storage | Yes | Yes | | | Yes | Its CORS rules doesn't allow no-http(s) origins. | -| [Wasabi](https://wasabi.com) | ? | ? | | | | | -| [filebase](https://filebase.com/) | Yes | Yes | | | Yes | CORS config needed. | -| QingStor 青云 | ? | ? | | | | | -| [MinIO](https://min.io/) | ? | ? | | | | | -| [WsgiDAV](https://github.com/mar10/wsgidav) | Yes | | Yes | | Yes | CORS rules can be set. | -| [Nginx `ngx_http_dav_module`](http://nginx.org/en/docs/http/ngx_http_dav_module.html) | Yes? | | Yes? | | Yes? | ? | -| NextCloud | Yes? | | Yes? | | Yes? | No CORS config by default. | -| OwnCloud | Yes? | | Yes? | | Yes? | No CORS config by default. | -| Seafile | Yes? | | Yes? | | Yes? | | -| `rclone serve webdav` | Yes | | Yes | | Yes | No CORS support. | -| [Nutstore 坚果云](https://www.jianguoyun.com/) | Yes | | Yes | | Yes | No CORS support. | -| [TeraCLOUD](https://teracloud.jp/en/) | Yes | | Yes | | Yes | No CORS support. | -| Dropbox | Yes | | | Yes | | | -| OneDrive for personal | Yes | | | Yes | | | -| OneDrive for Business | In the plan | | | ? | | | -| Google Drive | In the plan | | | ? | | | -| [Box](https://www.box.com/) | ? | | | May be possible but needs further development. | | | -| Google Cloud Storage | ? | | | May be possible but needs further development. | | | -| Microsoft Azure Blob Storage | ? | | | May be possible but needs further development. | | | -| [OpenStack Storage (Swift)](https://github.com/openstack/swift) | ? | | | May be possible but needs further development. | | | -| https://put.io/ | ? | | | ? | | | -| Yandex Disk | ? | | | ? | | | -| FTP / FTPS | Never | | | Technically never possible to be implemented. | | | -| SFTP | Never | | | Technically never possible to be implemented. | | | -| Jottacloud | No | | | No. It seems that no open api is available. | | | -| Mega | Never | | | No. No js api is available. | | | -| Git | Never | | | No. Technically very hard, if not impossible, to be implemented. | | | -| | | | | | | | +| Service | Connectable | by S3 | by WebDAV | by other protocol | can bypass CORS issue in latest Obsidian | need CORS config in old Obsidian | +| ------------------------------------------------------------------------------------- | ----------- | ----- | --------- | ---------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------ | +| Amazon S3 | Yes | Yes | | | Yes | [CORS config needed.](./s3_cors_configure.md) | +| Tencent Cloud - Cloud Object Storage (COS) 腾讯云对象存储 | Yes | Yes | | | Yes | CORS config needed. | +| Alibaba Cloud - Object Storage Service 阿里云对象存储 | Yes | Yes | | | Yes | CORS config needed. | +| Backblaze B2 Cloud Storage | Yes | Yes | | | Yes | Its CORS rules doesn't allow no-http(s) origins. | +| [Wasabi](https://wasabi.com) | ? | ? | | | | | +| [filebase](https://filebase.com/) | Yes | Yes | | | Yes | CORS config needed. | +| QingStor 青云 | ? | ? | | | | | +| [MinIO](https://min.io/) | ? | ? | | | | | +| [WsgiDAV](https://github.com/mar10/wsgidav) | Yes | | Yes | | Yes | CORS rules can be set. | +| [Nginx `ngx_http_dav_module`](http://nginx.org/en/docs/http/ngx_http_dav_module.html) | Yes? | | Yes? | | Yes? | ? | +| NextCloud | Yes? | | Yes? | | Yes? | No CORS config by default. | +| OwnCloud | Yes? | | Yes? | | Yes? | No CORS config by default. | +| Seafile | Yes? | | Yes? | | Yes? | | +| `rclone serve webdav` | Yes | | Yes | | Yes | No CORS support. | +| [Nutstore 坚果云](https://www.jianguoyun.com/) | Yes | | Yes | | Yes | No CORS support. | +| [TeraCLOUD](https://teracloud.jp/en/) | Yes | | Yes | | Yes | No CORS support. | +| Dropbox | Yes | | | Yes | | | +| OneDrive for personal | Yes | | | Yes | | | +| OneDrive for Business | In the plan | | | ? | | | +| Google Drive | In the plan | | | ? | | | +| [Box](https://www.box.com/) | ? | | | May be possible but needs further development. | | | +| Google Cloud Storage | ? | | | May be possible but needs further development. | | | +| Microsoft Azure Blob Storage | ? | | | May be possible but needs further development. | | | +| [OpenStack Storage (Swift)](https://github.com/openstack/swift) | ? | | | May be possible but needs further development. | | | +| https://put.io/ | ? | | | ? | | | +| Yandex Disk | ? | | | ? | | | +| FTP / FTPS | Never | | | Technically never possible to be implemented. | | | +| SFTP | Never | | | Technically never possible to be implemented. | | | +| Jottacloud | No | | | No. It seems that no open api is available. | | | +| Mega | Never | | | No. No js api is available. | | | +| Git | Never | | | No. Technically very hard, if not impossible, to be implemented. | | | +| | | | | | | |