Skip to content
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

Uploads #101

Open
jesmrec opened this issue Aug 1, 2018 · 5 comments
Open

Uploads #101

jesmrec opened this issue Aug 1, 2018 · 5 comments
Labels
Epic feature:uploads all kind of uploads

Comments

@jesmrec
Copy link
Contributor

jesmrec commented Aug 1, 2018

Letting users to upload content from their devices is one of the most important scenarios in a syncing client. Let's summarize and discuss a bit about the ways to upload content.

Manual uploads

Users can select those content to be uploaded. Steps (roughly):

  • User browses to the target folder
  • User selects the option to upload new content
  • Folder picker is shown
  • User chooses one (or more) items to be uploaded
  • Items are queued

Instant uploads

UI in settings view already developed: #33

Once the option is enabled in settings view and fits the user set up (only wifi, pics/videos), the content of the camera is queued.

Sharing

3rd party apps can share content with ownCloud. After selecting the item to be shared, folder picker to select target folder should be displayed. Once the user selects target folder, the content will be queued.

Files app

Upgrades of oC contents by other apps are queued as well. File provider will take care.

Concerns:


After content is queued, through the app (and underlying SDK), the user has to be able to manage the uploads with a view:

Uploads view

To check the status of the uploads, and interact with them.

Status of uploads:

  • Pending: files queued, to be uploaded. Information to be shown:

    • Name of the file
    • Target folder, including the account name
    • Option to cancel
  • On course: currently being performed. Information to be shown:

    • Name of the file
    • Progress bar (including the % is a n2h)
    • Option to cancel
    • Options to pause/resume, once webDav endpoint supports chunks. Checking before if currently the core supports this. (Uploads #101 (comment))
  • Failed: something wrong happened. Depending on the cause, user can select next action to do (check below). Information to be shown:

    • Name of the file
    • Target folder, including the account name
    • Reason of the failure
    • Indicate/enable any way to retry (by tapping, swiping or whatever...)
    • Option to discard
  • Success: Information to be shown:

    • Name of the file
    • Target folder, including the account name
    • Timestamp of the success

Different ways to show the user all these lists:

  • Consecutive list (current iOS & Android)
  • Tabs
  • Other iOS resources

The uploads view should also include options to clear all and each one of the lists above.

Failed uploads

Failed uploads deserve a separate management, so the cause of the failure will point to a different use case.

List of posible errors and the action to do when the user retries:

  • Lack of connection -> check if connection is available. If not, remains as failed. If it is, move all failed to pending.
  • Credentials error -> point to edit view
  • Target folder removed -> choose a new location
  • Source file removed -> only option to discard
  • Server maintenance mode -> check if server is in maintenance. If it is, remains as failed. If not, move all failed to pending.
  • Firewall rule bans the upload: will depend on the rule... further specification TO DO.
  • Antivirus bans the upload -> only option to discard
  • No quota available -> check if enough qouta. If it is, move all failed to pending. If not, remains as failed.

NOTE: Some of them will depend on the server responses.

An option to retry all failed uploads regardless the causing error should be put together with the clearing list options mentioned above.

More topics related can be added and discussed.

@jesmrec jesmrec added the Epic label Aug 1, 2018
@mmattel
Copy link
Contributor

mmattel commented Aug 3, 2018

Question:

  • has it been considered that you may have more than one account and you want to upload things to a particular (predefined) and not the current active one?
  • on uploading eg pictures / videos, is is possible to (pre) define the target folder. Background, you may want to use a mount point which is not local but extenal

@jesmrec
Copy link
Contributor Author

jesmrec commented Aug 3, 2018

has it been considered that you may have more than one account and you want to upload things to a particular (predefined) and not the current active one?

For such case, i would set two options:

  • Use the current active to upload.
  • Use a predefined one in app settings.

If you have 3 accounts, maybe you will upload content to all of them. If you have several accounts and the predefined one is removed, which one would be the new predefined? the active one .

Other different (and bothering) option is asking user the account to upload to in the moment the items were picked.

on uploading eg pictures / videos, is is possible to (pre) define the target folder. Background, you may want to use a mount point which is not local but external

External storages, you mean. These ones are handled as folders from mobile app point of view. You will select the folder for your external storage and will be uploaded to such external. Did you mean this feature?

@michaelstingl
Copy link
Contributor

michaelstingl commented Aug 3, 2018

ownCloud iOS app won't differentiate local or external server-side storage.

For instant uploads, we already have the following settings:

  • Account to upload: This should present to the user a list of bookmarks you have in the app and select the account you want to be the one in which the instant uploads should be put.
  • Path for instant uploads: Here you can select the folder you want to be the container for the instant uploads.

(see #33)

We also sketched some UI ideas for this:

image

We used Figma.com for this quick sketch. Here you can fork it to propose own ideas:
https://www.figma.com/file/Ui4YzD3oQcxJSbzBEr80O9eU/Working-Draft-UI?node-id=26%3A1454

@mmattel
Copy link
Contributor

mmattel commented Aug 3, 2018

If you have 3 accounts, maybe you will upload content to all of them. If you have several accounts and the predefined one is removed, which one would be the new predefined? the active one

Then you need for all accounts available a selectable target folder. And a choice if none of the selected are available what to do. Like do nothing, ask ect

External storages, you mean. These ones are handled as folders from mobile app point of view. You will select the folder for your external storage and will be uploaded to such external. Did you mean this feature?

yes, of course I know that all storages are folders and you can´t see from the folder if it is local or external. I just wanted to highlight the need to have the target chosable and the background behind. external mostly has much more space available... you may also have a setting if the target folder is not available to create it or do nothing (see above).

@michaelstingl
Copy link
Contributor

See owncloud/android#2070 for chunked upload and resuming. Also the desktop client already resumes uploads.

@michaelstingl michaelstingl added the feature:uploads all kind of uploads label Jul 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic feature:uploads all kind of uploads
Projects
None yet
Development

No branches or pull requests

3 participants