@ctil/gql 1.0.16 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4744,13 +4744,44 @@ var oss = {
4744
4744
  async uploadFile(params) {
4745
4745
  const { file, folder, acl = "private" } = params;
4746
4746
  const md5Base64 = await computeFileMd5Base64(file);
4747
- console.log(md5Base64);
4747
+ const presignedInput = {
4748
+ fileMd5Base64: md5Base64,
4749
+ fileSuffix: file.name.split(".").pop() || "",
4750
+ originalFileName: file.name,
4751
+ fileSize: file.size,
4752
+ acl
4753
+ };
4754
+ if (folder) presignedInput.folder = folder;
4755
+ const presignedResult = await rateLimit("uploadPresignedUrl", "mutation", async () => {
4756
+ const { query: query2, variables } = buildGraphQLUploadPresignedUrl(presignedInput);
4757
+ const result = await execute({ query: query2, variables });
4758
+ return result;
4759
+ });
4760
+ console.log("presignedResult====>", presignedResult);
4761
+ if (!presignedResult.uploadPresignedUrl) throw new Error("\u83B7\u53D6\u9884\u7B7E\u540D URL \u5931\u8D25");
4762
+ const { uploadUrl, uploadHeaders, downloadUrl, resourceId, contentType, originalFileName } = presignedResult.uploadPresignedUrl;
4763
+ const headers = {};
4764
+ if (uploadHeaders) {
4765
+ if (uploadHeaders.contentMD5) headers["Content-MD5"] = uploadHeaders.contentMD5;
4766
+ if (uploadHeaders.contentType) headers["Content-Type"] = uploadHeaders.contentType;
4767
+ if (uploadHeaders.date) headers["Date"] = uploadHeaders.date;
4768
+ }
4769
+ const res = await fetch(uploadUrl, {
4770
+ method: "PUT",
4771
+ body: file,
4772
+ headers
4773
+ });
4774
+ if (!res.ok) {
4775
+ throw new Error(`\u4E0A\u4F20\u5931\u8D25: ${res.status} ${res.statusText}`);
4776
+ }
4748
4777
  return {
4749
- id: 1,
4750
- originalFileName: "tt",
4751
- contentType: "11",
4752
- fileSize: 123,
4753
- url: "HHH"
4778
+ id: resourceId,
4779
+ // 非空断言,确保 TS 类型通过
4780
+ originalFileName: originalFileName ?? file.name,
4781
+ contentType: contentType ?? file.type,
4782
+ fileSize: file.size,
4783
+ url: downloadUrl ?? uploadUrl
4784
+ // downloadUrl 可能为 undefined,fallback 使用 uploadUrl
4754
4785
  };
4755
4786
  },
4756
4787
  /**