Comments (9)
@tomer-eproval Is this a random issue or always happens on your side? What's the specific Chrome version? Please share a more detailed re-produce steps or sample codes.
from azure-storage-js.
Will close this issue as long time no response, fell free to re-open if you have further questions.
from azure-storage-js.
@XiaoningLiu
I observed this issue today. In my case, if the SAS token does not have '?' at start, i.e if it is
sv=xxxxx
instead of ?sv=xxxxx
. It throws the above mentioned error.
from azure-storage-js.
@SarveshDeshmukh Interesting. What's your SDK version, Node.js or browser runtime? Can you provide a code sample?
from azure-storage-js.
@XiaoningLiu Hello, sorry for the late reply.
The version I am using is 10.3.0. And I am using browser runtime. uploadBrowserDataToBlockBlob()
Here's the code sample:
- Function to get the relevant info from backend:
/**
* Gets all the information required for Blob transfer using `uploadBrowserDataToBlockBlob()`
*/
getSasTokenAndBlobInfo() {
return {
sasToken: '?sv=xxxx',
storageAccountName: 'xxxx',
containerName: 'xxxx',
blobName: '',
};
}
- Function that does the upload job using
uploadBrowserDataToBlockBlob()
/**
* Uploads a file to Azure Storage
* @param file file to be uploaded
* @returns Promise containing blob upload response
*/
uploadAttachment(file: File): Promise<void | BlobUploadCommonResponse> {
const blockBlobURL = this.getBlobBlockURL(file.name);
const aborter = Aborter.none;
return uploadBrowserDataToBlockBlob(
aborter,
new Blob([file], { type: file.type }),
blockBlobURL,
{
blockSize: BLOB_TRANSFER_CONFIG.BLOCK_SIZE * 1024 * 1024, // BLOCK_SIZE MB block size
parallelism: BLOB_TRANSFER_CONFIG.CONCURRENCY, // Concurrency of parallel uploading. Must be > 0
progress: ev => {
console.log('Uploaded so far', ev.loadedBytes);
},
},
).then(
response => {
if (response.errorCode == null) {
blockBlobURL.setHTTPHeaders(aborter, { blobContentType: file.type });
console.log('Complete');
} else {
throw new Error(response.errorCode);
}
return response;
},
err => {
console.log(err);
},
);
}
- Function that returns me the BlobBlockURL:
/**
* @returns the url needed for upload and download operation
* @param fileName file name for which the url is needed
*/
private getBlobBlockURL(fileName: string): BlockBlobURL {
const sasAndBlobInfo = this.getSasTokenAndBlobInfo();
const pipeline = StorageURL.newPipeline(new AnonymousCredential(), {
retryOptions: { maxTries: 4 }, // Retry options
telemetry: { value: 'HighLevelSample V1.0.0' }, // Customized telemetry string
});
const serviceURL = new ServiceURL(
`https://${sasAndBlobInfo.storageAccountName}.blob.core.windows.net${
sasAndBlobInfo.sasToken
}`,
pipeline,
);
const containerURL = ContainerURL.fromServiceURL(
serviceURL,
sasAndBlobInfo.containerName,
);
// Create a blob
const blobName = fileName;
const blobURL = BlobURL.fromContainerURL(containerURL, blobName);
return BlockBlobURL.fromBlobURL(blobURL);
}
So, when I remove ?
from the SAS token. The above error is observed.
from azure-storage-js.
Thanks! I believe we should improve the error handling!
from azure-storage-js.
Any update on this please?
from azure-storage-js.
@SarveshDeshmukh Confirmed this is a bug. Should be able to fix in next release in late June. BTW, contribution is also welcome.
from azure-storage-js.
This is fixed in latest releases from 10.4.0, see https://www.npmjs.com/package/@azure/storage-blob
from azure-storage-js.
Related Issues (20)
- This repo is missing important files HOT 1
- high-level samples Abort.timeout duration HOT 2
- can I use this library in a React Native app? HOT 10
- Aborter throws timeout error even though it succeeds on download of BlockBlobUrl HOT 15
- Missing setProperties function for blob HOT 2
- Export RetryPolicyType in index.ts HOT 1
- Unable to set file HTTP headers HOT 1
- Using application/json header for file upload (x-ms-blob-type error) HOT 2
- Support for Angular4 (Typescript < 2.4) HOT 4
- how to handle viewing files that are stored in azure storage with multiple mime types HOT 7
- Cannot find name 'Event' HOT 9
- Aborter does not abort uploads that are in timeout / retrying HOT 2
- Gracefully handle 404 of reading from blob HOT 2
- [Tests] incorrect assert.ok() on result from string.indexof HOT 1
- downloadBlobToBuffer may download error ranges when customize non zero offset with count HOT 1
- Dowloading a blob should not reject on 304 HOT 3
- Question: file service API is so confusing :( :( HOT 2
- [Notice] This Project has been Moved to Azure SDK Central Repository
- How to list blobs from virtual directory in latest nodejs SDK? HOT 2
- How to get Content-MD5 HOT 1
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 azure-storage-js.