Allowing a user to resume a download from a different signed s3 link that has the same ETag as a partially...
I'm not sure if this is possible, but basically I have a web application that allows users to download large single files through their browser by clicking a UI element that redirects them to a pre-signed S3 url. The download will then be mediated between the user's browser and S3. The issue with this process is that the downloads can be quite large (on the order of hundreds of GB), so an interrupted connection can be problematic. When the user tries to resume, the signed link we redirected their browser to is probably expired. I'd like to avoid just increasing the expiration date of the signed url out of security concerns, so I've been researching how to support a resumable download. The use case from the mozilla documentation on conditional requests is almost exactly what I need, the road block I'm running into is how to check if the download has been previously started on the client side. I'd like the users to be able to click the button that redirects them to the S3 link and have that check if there are any partially complete downloads (and know how many bytes have been downloaded), then just send the HTTP request with the If-Range header to restart the download in the browser from a different S3 link (with the same ETag value). Is there an api somewhere or an example of some Javascript that allows the browser to mediate such a request?
javascript amazon-s3 download http-headers etag
add a comment |
I'm not sure if this is possible, but basically I have a web application that allows users to download large single files through their browser by clicking a UI element that redirects them to a pre-signed S3 url. The download will then be mediated between the user's browser and S3. The issue with this process is that the downloads can be quite large (on the order of hundreds of GB), so an interrupted connection can be problematic. When the user tries to resume, the signed link we redirected their browser to is probably expired. I'd like to avoid just increasing the expiration date of the signed url out of security concerns, so I've been researching how to support a resumable download. The use case from the mozilla documentation on conditional requests is almost exactly what I need, the road block I'm running into is how to check if the download has been previously started on the client side. I'd like the users to be able to click the button that redirects them to the S3 link and have that check if there are any partially complete downloads (and know how many bytes have been downloaded), then just send the HTTP request with the If-Range header to restart the download in the browser from a different S3 link (with the same ETag value). Is there an api somewhere or an example of some Javascript that allows the browser to mediate such a request?
javascript amazon-s3 download http-headers etag
add a comment |
I'm not sure if this is possible, but basically I have a web application that allows users to download large single files through their browser by clicking a UI element that redirects them to a pre-signed S3 url. The download will then be mediated between the user's browser and S3. The issue with this process is that the downloads can be quite large (on the order of hundreds of GB), so an interrupted connection can be problematic. When the user tries to resume, the signed link we redirected their browser to is probably expired. I'd like to avoid just increasing the expiration date of the signed url out of security concerns, so I've been researching how to support a resumable download. The use case from the mozilla documentation on conditional requests is almost exactly what I need, the road block I'm running into is how to check if the download has been previously started on the client side. I'd like the users to be able to click the button that redirects them to the S3 link and have that check if there are any partially complete downloads (and know how many bytes have been downloaded), then just send the HTTP request with the If-Range header to restart the download in the browser from a different S3 link (with the same ETag value). Is there an api somewhere or an example of some Javascript that allows the browser to mediate such a request?
javascript amazon-s3 download http-headers etag
I'm not sure if this is possible, but basically I have a web application that allows users to download large single files through their browser by clicking a UI element that redirects them to a pre-signed S3 url. The download will then be mediated between the user's browser and S3. The issue with this process is that the downloads can be quite large (on the order of hundreds of GB), so an interrupted connection can be problematic. When the user tries to resume, the signed link we redirected their browser to is probably expired. I'd like to avoid just increasing the expiration date of the signed url out of security concerns, so I've been researching how to support a resumable download. The use case from the mozilla documentation on conditional requests is almost exactly what I need, the road block I'm running into is how to check if the download has been previously started on the client side. I'd like the users to be able to click the button that redirects them to the S3 link and have that check if there are any partially complete downloads (and know how many bytes have been downloaded), then just send the HTTP request with the If-Range header to restart the download in the browser from a different S3 link (with the same ETag value). Is there an api somewhere or an example of some Javascript that allows the browser to mediate such a request?
javascript amazon-s3 download http-headers etag
javascript amazon-s3 download http-headers etag
asked Nov 13 '18 at 6:49
JustaDevJustaDev
12
12
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275317%2fallowing-a-user-to-resume-a-download-from-a-different-signed-s3-link-that-has-th%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275317%2fallowing-a-user-to-resume-a-download-from-a-different-signed-s3-link-that-has-th%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown