请教:阿里云-对象存储 OSS-分片上传图片问题

在使用阿里云-对象存储 OSS-分片上传图片时
客户javascript是用
var client = new directup(json.msg);与OSS已经建立
但在使用函数

img


不运行了,不知怎么回事,请大{侠]们指点,谢谢!
函数multipartUpload在aliyun.js里,文件也引用了

img

这种第三方的直接参考官方文档:https://help.aliyun.com/document_detail/31850.html

f12看控制台有报错吗?看网络有上传吗?

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
你好,可能需要更多的信息才能确定问题的原因。可以提供一些更具体的信息,例如:

  • 当调用函数 multipartUpload 时,是发生了什么错误或异常?
  • 是否有任何错误消息或日志输出?
  • 是否可以提供相应代码片段,以便更好地理解问题发生的位置和原因?

以下是一个使用阿里云 OSS 分片上传图片的示例代码片段,假设 client 是直传客户端对象:

var multipartUpload = function (file, callback) {
  var self = this;

  var fileSize = file.size;
  var key = file.name;

  var uploadId;

  var max_part_num = 10000;
  var part_size = 5 * 1024 * 1024;

  var partList = [];

  var record = {
    uploadId: uploadId,
    partList: partList
  };

  var uploadCallback = {
    onprogress: function (e) {
      console.log('Progress:', e.loaded, '/', e.total);
    },
    onsuccess: function (result) {
      console.log('Upload success:', result);
      callback(null, result);
    },
    onerror: function (err) {
      console.log('Upload error:', err);
      callback(err, null);
    }
  };

  self.initiateMultipartUpload({
    Bucket: 'your-bucket-name',
    Key: key
  }, function (err, data) {
    if (err) {
      console.log(err);
      return;
    }

    uploadId = data.UploadId;
    record.uploadId = uploadId;

    var parallelList = [];

    var leftSize = fileSize;
    var partNum = 0;
    while (leftSize > 0) {
      if (leftSize < part_size) {
        part_size = leftSize;
      }

      var partParams = {
        Bucket: 'your-bucket-name',
        Key: key,
        PartNumber: (partNum + 1),
        UploadId: uploadId,
        PartSize: part_size,
        Body: file.slice(partNum * part_size, (partNum * part_size) + part_size),
        Headers: {
          'Cache-Control': 'max-age=2592000'
        }
      };

      var parallelTask = {
        task: function (partParams) {
          return function (callback) {
            client.uploadPart(partParams, uploadCallback, callback);
          };
        }(partParams),
        partNum: partNum
      };
      parallelList.push(parallelTask);

      partList[partNum] = null;

      partNum++;
      leftSize -= part_size;

      if (partNum >= max_part_num) {
        break;
      }
    }

    async.parallelLimit(parallelList.map(function (x) {
      return x.task;
    }), Math.min(parallelList.length, 10), function (err) {
      if (err) {
        console.log(err);
        return;
      }

      self.completeMultipartUpload({
        Bucket: 'your-bucket-name',
        Key: key,
        UploadId: uploadId,
        Parts: partList.filter(function (x) { return x !== null; })
      }, function (err, data) {
        if (err) {
          console.log(err);
          return;
        }

        uploadCallback.onsuccess(data);
      });
    });
  });
};

这段代码演示了如何使用阿里云 OSS 的分片上传功能,其中的 client 对象是直传客户端对象。你可以参考这个例子检查你的代码,看看是否有类似的问题。如果还需要帮助,请提供更多信息。
如果我的回答解决了您的问题,请采纳!