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

Clients shouldn't chunk in case no chunking capabilities were announced #39

Closed
3 tasks done
michaelstingl opened this issue May 15, 2020 · 2 comments
Closed
3 tasks done

Comments

@michaelstingl
Copy link

michaelstingl commented May 15, 2020

oC 7.0, 8.0, 8.1, 8.2, 9.0, 9.1

"bigfilechunking": true, always set, no "chunking": "1.0"

Expand oC 7.0 capabilites
% curl -u admin:admin 'http://localhost:7080/ocs/v1.php/cloud/capabilities?format=json' | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   258  100   258    0     0   2715      0 --:--:-- --:--:-- --:--:--  2715
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "capabilities": {
        "files": {
          "versioning": true,
          "bigfilechunking": true,
          "undelete": true
        },
        "core": {
          "pollinterval": 60
        }
      },
      "version": {
        "major": 7,
        "minor": 0,
        "micro": 15,
        "string": "7.0.15",
        "edition": ""
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:7080/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 404 Not Found
Expand oC 8.0 capabilites
% curl -u admin:admin 'http://localhost:8080/ocs/v1.php/cloud/capabilities?format=json' | jq          
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   258  100   258    0     0   2504      0 --:--:-- --:--:-- --:--:--  2504
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "capabilities": {
        "files": {
          "versioning": true,
          "undelete": true,
          "bigfilechunking": true
        },
        "core": {
          "pollinterval": 60
        }
      },
      "version": {
        "major": 8,
        "minor": 0,
        "micro": 16,
        "string": "8.0.16",
        "edition": ""
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:8080/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 404 Not Found
Expand oC 8.1 capabilites
% curl -u admin:admin 'http://localhost:8180/ocs/v1.php/cloud/capabilities?format=json' | jq          
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   426  100   426    0     0   4484      0 --:--:-- --:--:-- --:--:--  4437
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "capabilities": {
        "files": {
          "versioning": true,
          "undelete": true,
          "bigfilechunking": true
        },
        "files_sharing": {
          "public": {
            "enabled": true,
            "password": {
              "enforced": false
            },
            "expire_date": {
              "enabled": false
            },
            "send_mail": false
          },
          "user": {
            "send_mail": false
          },
          "resharing": true
        },
        "core": {
          "pollinterval": 60
        }
      },
      "version": {
        "major": 8,
        "minor": 1,
        "micro": 12,
        "string": "8.1.12",
        "edition": ""
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:8180/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  6682    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 500 Internal Server Error
Expand oC 8.2 capabilites
% curl -u admin:admin 'http://localhost:8280/ocs/v1.php/cloud/capabilities?format=json' | jq          
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   553  100   553    0     0   5216      0 --:--:-- --:--:-- --:--:--  5216
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "version": {
        "major": 8,
        "minor": 2,
        "micro": 11,
        "string": "8.2.11",
        "edition": ""
      },
      "capabilities": {
        "core": {
          "pollinterval": 60
        },
        "files_sharing": {
          "api_enabled": true,
          "public": {
            "enabled": true,
            "password": {
              "enforced": false
            },
            "expire_date": {
              "enabled": false
            },
            "send_mail": false,
            "upload": true
          },
          "user": {
            "send_mail": false
          },
          "resharing": true,
          "federation": {
            "outgoing": true,
            "incoming": true
          }
        },
        "files": {
          "bigfilechunking": true,
          "undelete": true,
          "versioning": true
        },
        "notifications": {
          "endpoints": [
            "get",
            "delete"
          ]
        }
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:8280/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  6877    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 500 Internal Server Error
Expand oC 9.0 capabilites
% curl -u admin:admin 'http://localhost:9080/ocs/v1.php/cloud/capabilities?format=json' | jq          
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   599  100   599    0     0   6582      0 --:--:-- --:--:-- --:--:--  6582
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "version": {
        "major": 9,
        "minor": 0,
        "micro": 11,
        "string": "9.0.11",
        "edition": ""
      },
      "capabilities": {
        "core": {
          "pollinterval": 60,
          "webdav-root": "remote.php/webdav"
        },
        "files": {
          "bigfilechunking": true,
          "undelete": true,
          "versioning": true
        },
        "files_sharing": {
          "api_enabled": true,
          "public": {
            "enabled": true,
            "password": {
              "enforced": false
            },
            "expire_date": {
              "enabled": false
            },
            "send_mail": false,
            "upload": true
          },
          "user": {
            "send_mail": false
          },
          "resharing": true,
          "federation": {
            "outgoing": true,
            "incoming": true
          }
        },
        "notifications": {
          "ocs-endpoints": [
            "list",
            "get",
            "delete"
          ]
        }
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:9080/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  2007    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 207 Multi-Status
Expand oC 9.1 capabilites
% curl -u admin:admin 'http://localhost:9180/ocs/v1.php/cloud/capabilities?format=json' | jq          
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   652  100   652    0     0   6936      0 --:--:-- --:--:-- --:--:--  6936
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": null
    },
    "data": {
      "version": {
        "major": 9,
        "minor": 1,
        "micro": 8,
        "string": "9.1.8",
        "edition": ""
      },
      "capabilities": {
        "core": {
          "pollinterval": 60,
          "webdav-root": "remote.php/webdav"
        },
        "files": {
          "bigfilechunking": true,
          "blacklisted_files": [
            ".htaccess"
          ],
          "undelete": true,
          "versioning": true
        },
        "files_sharing": {
          "api_enabled": true,
          "public": {
            "enabled": true,
            "password": {
              "enforced": false
            },
            "expire_date": {
              "enabled": false
            },
            "send_mail": false,
            "upload": true
          },
          "user": {
            "send_mail": false
          },
          "resharing": true,
          "group_sharing": true,
          "federation": {
            "outgoing": true,
            "incoming": true
          }
        },
        "notifications": {
          "ocs-endpoints": [
            "list",
            "get",
            "delete"
          ]
        }
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:9180/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  2007    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 207 Multi-Status

oC 10.0.2

"bigfilechunking": true, and "chunking": "1.0" set

Expand oC 10.0.2 capabilites
% curl -u admin:admin 'http://localhost:10080/ocs/v1.php/cloud/capabilities?format=json' | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1005  100  1005    0     0  11043      0 --:--:-- --:--:-- --:--:-- 11043
{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": "OK",
      "totalitems": "",
      "itemsperpage": ""
    },
    "data": {
      "version": {
        "major": 10,
        "minor": 0,
        "micro": 2,
        "string": "10.0.2",
        "edition": "Community"
      },
      "capabilities": {
        "core": {
          "pollinterval": 60,
          "webdav-root": "remote.php/webdav",
          "status": {
            "installed": "true",
            "maintenance": "false",
            "needsDbUpgrade": "false",
            "version": "10.0.2.1",
            "versionstring": "10.0.2",
            "edition": "Community",
            "productname": "ownCloud"
          }
        },
        "dav": {
          "chunking": "1.0"
        },
        "files_sharing": {
          "api_enabled": true,
          "public": {
            "enabled": true,
            "password": {
              "enforced": false
            },
            "expire_date": {
              "enabled": false
            },
            "send_mail": false,
            "upload": true,
            "multiple": true,
            "supports_upload_only": true
          },
          "user": {
            "send_mail": false
          },
          "resharing": true,
          "group_sharing": true,
          "federation": {
            "outgoing": true,
            "incoming": true
          }
        },
        "checksums": {
          "supportedTypes": [
            "SHA1"
          ],
          "preferredUploadType": "SHA1"
        },
        "files": {
          "bigfilechunking": true,
          "blacklisted_files": [
            ".htaccess"
          ],
          "undelete": true,
          "versioning": true
        },
        "notifications": {
          "ocs-endpoints": [
            "list",
            "get",
            "delete"
          ]
        }
      }
    }
  }
}

New endpoint?

% curl  -u admin:admin 'http://localhost:10080/remote.php/dav/files/admin' -X 'PROPFIND' -I | grep HTTP
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  1936    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 207 Multi-Status

oCIS-beta5

"bigfilechunking": false, and "chunking": "", set (owncloud/ocis#259 (comment))

oCIS-???

Some TUS capabilities… (owncloud/ocis-reva#177)

Upload matrix

Desktop < 2.7 Desktop ≥ 2.7 Android < 2.9 Android ≥ 2.9 Android ≥ 2.15 iOS legacy iOS new
oC 7.0 Chunking V1 (Unsupported warning ≥ 2.5) Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 Old endpoint not supported (remote.php/dav/ oC < 10 not supported Plain upload (Chunking never implemented) Old endpoint not supported (remote.php/dav/
oC 8.0 Chunking V1 (Unsupported warning ≥ 2.5) Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 Old endpoint not supported (remote.php/dav/ oC < 10 not supported Plain upload (Chunking never implemented) Old endpoint not supported (remote.php/dav/
oC 8.1 Chunking V1 (Unsupported warning ≥ 2.5) Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 Old endpoint not supported (remote.php/dav/ oC < 10 not supported Plain upload (Chunking never implemented) Old endpoint not supported (remote.php/dav/
oC 8.2 Chunking V1 (Unsupported warning ≥ 2.5) Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 Old endpoint not supported (remote.php/dav/ oC < 10 not supported Plain upload (Chunking never implemented) Old endpoint not supported (remote.php/dav/
oC 9.0 ??? Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 ??? oC < 10 not supported Plain upload (Chunking never implemented) ???
oC 9.1 ??? Plain Upload (Unsupported warning ≥ 2.5) Chunking V1 ??? oC < 10 not supported Plain upload (Chunking never implemented) ???
oC 10.0.2 Chunking NG Chunking NG Chunking V1 Chunking NG Chunking NG Plain upload (Chunking never implemented) Plain upload (Chunking never implemented)
oC 10.4.1 Chunking NG Chunking NG Chunking V1 Chunking NG Chunking NG Plain upload (Chunking never implemented) Plain upload (Chunking never implemented)
oCIS-beta5 Non-OIDC unsupported Plain upload Non-OIDC unsupported Non-OIDC unsupported Plain upload Non-OIDC unsupported Plain upload (Chunking never implemented)
oCIS-GA Non-OIDC unsupported TUS Non-OIDC unsupported Non-OIDC unsupported Plain upload Non-OIDC unsupported TUS

Action items:

Desktop 2.7

Android 2.15

iOS 11.4

  • No action required
@michaelstingl
Copy link
Author

Fixed in Desktop 2.7+ and Android 2.15+

@jnweiger
Copy link

Chunking settings are in multiple places in the capabilities report:
curl -s -u admin:admin "https://$SERVER/ocs/v1.php/cloud/capabilities?format=json" | jq

.ocs.data.capabilities.dav: { "chunking": "1.0", ...
.ocs.data.capabilities.files: { "bigfilechunking": true, ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants