Giter Site home page Giter Site logo

Comments (9)

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

@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.

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

Will close this issue as long time no response, fell free to re-open if you have further questions.

from azure-storage-js.

SarveshDeshmukh avatar SarveshDeshmukh commented on May 28, 2024

@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.

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

@SarveshDeshmukh Interesting. What's your SDK version, Node.js or browser runtime? Can you provide a code sample?

from azure-storage-js.

SarveshDeshmukh avatar SarveshDeshmukh commented on May 28, 2024

@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.

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

Thanks! I believe we should improve the error handling!

from azure-storage-js.

SarveshDeshmukh avatar SarveshDeshmukh commented on May 28, 2024

Any update on this please?

from azure-storage-js.

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

@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.

XiaoningLiu avatar XiaoningLiu commented on May 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.