Comments (8)
Intentionally, isSupported
may be true even if local storage is not available. The reason is that it should indicate whether tus-js-client can upload at all which requires file slicing and support for XHR but no Web Storage. If you are interested in whether it is able to store URLs in the local storage, you have to examine canStoreURLs
(see https://github.com/tus/tus-js-client#tuscanstoreurls).
from tus-js-client.
I see, I wasn't aware of canStoreURLs
.
However I'm not sure the private mode on Safari on iOS really sets the canStoreURLs
to false: if I'm not mistaken, tus is only checking whether the local storage exists, but not whether it's accepting any values.
Local storage exists in private mode, but it's not accepting any values and throws a QuotaExceededError
when attempting to actually save values, see this thread. It's a strange behaviour.
from tus-js-client.
The modernizr's approach handles this issue.
function lsTest () {
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
return false;
}
}
if (lsTest () === true) {
// available
} else {
// unavailable
}
from tus-js-client.
However I'm not sure the private mode on Safari on iOS really sets the canStoreURLs to false: if I'm not mistaken, tus is only checking whether the local storage exists, but not whether it's accepting any values.
In the past, this check has served us well in detecting whether local storage is usable, as accessing the length of it is usually not permitted if the entire Web Storage is unavailable. However, this may not be the case in Safari's private mode. I will take a look at it but this may take some time as I do not have an iOS device at hand.
from tus-js-client.
@Acconut If you like you can assign this issue to me, I'm working on a project right now which involves tus and iOS devices. As far as my company is concerned, working on tus is considered as working on the product.
from tus-js-client.
@mmathys That would be very helpful if you could look into this. Thank you and your company already in advance.
from tus-js-client.
Closing in favor of #53.
from tus-js-client.
The according patch is available in v1.4.2
.
from tus-js-client.
Related Issues (20)
- supabase tus implementation HOT 4
- MIT License HOT 2
- tus-upload large file not working in Ubuntu nginx server HOT 3
- Switch from HTTPS to HTTP Causes Mixed Content Errors HOT 1
- It's not possible to declare onShouldRetry and fallback to the default behaviour HOT 1
- Failed because: Error: tus: unexpected response while uploading chunk, [...] HOT 12
- define a global maximum concurrent request limit HOT 3
- > net::ERR_UPLOAD_FILE_CHANGED
- TypeError: Cannot read properties of undefined (reading 'Upload') HOT 4
- Base64 Encoding of Metadata Assumes Metadata Value is a UTF8 String (Should It?) HOT 6
- RetryDelays: "Type 'null' is not assignable to type 'number[] | undefined'". But null is acceptable. HOT 2
- Replace Karma test runner
- window is undefined when trying to run in worker file on browser HOT 8
- Duplicate calls to `start` cause duplicate uploads
- Can onSuccess return the file address when the upload is successful? HOT 10
- Provide fallback storage when using tus in Web Workers HOT 3
- Either a Bug or i'm doing something wrong HOT 3
- removeFingerprintOnSuccess not working on multiple files HOT 4
- Decrease browser bundle size HOT 1
- Change request method to PATCH HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tus-js-client.