Skip to content

Commit a14d677

Browse files
committed
Revert to-files changes
Add upload files test
1 parent cbda351 commit a14d677

3 files changed

Lines changed: 115 additions & 18 deletions

File tree

src/index.js

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -271,23 +271,20 @@ class FilebaseClient {
271271

272272
//region File Methods
273273
async #uploadFiles(formData, options) {
274-
options.headers = options.headers || {};
275-
options.headers = {
276-
...options.headers,
277-
};
278-
options.headers["Authorization"] =
274+
const uploadHeaders = options.headers || {};
275+
uploadHeaders["Authorization"] =
279276
`Bearer ${this.#getIpfsCredentials(options?.bucket)}`;
280-
options.params = options.params || {};
281-
options.params["to-files"] = options.params.toFiles || "";
282-
options.params["cid-version"] = options.params.cidVersion
283-
? Number(options.params.cidVersion)
277+
const uploadParams = options.params || {};
278+
uploadParams["preserve-filenames"] = "true";
279+
uploadParams["cid-version"] = uploadParams.cidVersion
280+
? Number(uploadParams.cidVersion)
284281
: 0;
285282

286283
const downloadResponse = await this.#ipfs_client.request({
287284
method: "POST",
288285
url: "api/v0/add",
289-
headers: options.headers,
290-
params: options.params,
286+
headers: uploadHeaders,
287+
params: uploadParams,
291288
data: formData,
292289
validateStatus: function (status) {
293290
return status === 200;
@@ -531,7 +528,7 @@ class FilebaseClient {
531528
},
532529
params: {
533530
"cid-version": options?.cidVersion || 0,
534-
"to-files": name,
531+
"directory-name": name,
535532
"wrap-with-directory": "true",
536533
},
537534
});
@@ -554,8 +551,7 @@ class FilebaseClient {
554551
*/
555552
async uploadFile(name, content, options = {}) {
556553
const uploadFormData = new FormData();
557-
uploadFormData.append("file", content);
558-
options["to-files"] = name;
554+
uploadFormData.append("file", content, name);
559555

560556
const uploadedFiles = await this.uploadFiles(uploadFormData, options);
561557
return uploadedFiles[0];
@@ -578,10 +574,7 @@ class FilebaseClient {
578574
* const uploadedFiles = await client.uploadFiles(uploadForm);
579575
*/
580576
uploadFiles(content, options = {}) {
581-
return this.#uploadFiles(content, {
582-
...options,
583-
"to-files": options?.prefix || "",
584-
});
577+
return this.#uploadFiles(content, options);
585578
}
586579
//endregion
587580

test/index.spec.cjs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,23 @@ async function uploadObjects(bucket, key, body) {
236236
return typeof uploadedObject !== "undefined" && uploadedObject !== false;
237237
}
238238

239+
async function uploadFiles(bucket, body) {
240+
// Initialize FilebaseClient
241+
const filebaseClient = new FilebaseClient(CLIENT_KEY, CLIENT_SECRET, {
242+
bucket,
243+
endpoints: {
244+
s3: TEST_S3_ENDPOINT,
245+
rpc: TEST_RPC_ENDPOINT,
246+
platform: TEST_PLATFORM_ENDPOINT,
247+
},
248+
});
249+
250+
// Upload Object
251+
await filebaseClient.uploadFiles(body);
252+
253+
return true;
254+
}
255+
239256
async function deleteObject(bucket, key) {
240257
// Initialize FilebaseClient
241258
const filebaseClient = new FilebaseClient(CLIENT_KEY, CLIENT_SECRET, {
@@ -326,6 +343,41 @@ test("upload object", async () => {
326343
}
327344
});
328345

346+
test("upload objects", async () => {
347+
// Create Bucket `create-objects-test-pass
348+
const uploadTestBucket = `${TEST_PREFIX}-create-objects-test-pass`;
349+
await createBucket(uploadTestBucket);
350+
351+
try {
352+
// Upload object `create-object-test`
353+
const objectPrefix = `create-objects-test/`;
354+
const objectsForm = new FormData();
355+
objectsForm.append(
356+
"file",
357+
new Blob(["upload object 1"]),
358+
`${objectPrefix}testObjects/1.txt`,
359+
);
360+
objectsForm.append(
361+
"file",
362+
new Blob(["upload object 2"]),
363+
`${objectPrefix}testObjects/2.txt`,
364+
);
365+
objectsForm.append(
366+
"file",
367+
new Blob(["upload object 3"]),
368+
`${objectPrefix}testObjects/3.txt`,
369+
);
370+
const uploaded = await uploadFiles(uploadTestBucket, objectsForm);
371+
372+
assert.notEqual(uploaded, false);
373+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/1.txt`);
374+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/2.txt`);
375+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/3.txt`);
376+
} finally {
377+
await deleteBucket(uploadTestBucket);
378+
}
379+
});
380+
329381
test("upload directory", async () => {
330382
// Create Bucket `create-object-test-pass
331383
const uploadDirectoryTestBucket = `${TEST_PREFIX}-create-directory-test-pass`;

test/index.spec.mjs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,23 @@ async function uploadObjects(bucket, key, body) {
236236
return typeof uploadedObject !== "undefined" && uploadedObject !== false;
237237
}
238238

239+
async function uploadFiles(bucket, body) {
240+
// Initialize FilebaseClient
241+
const filebaseClient = new FilebaseClient(CLIENT_KEY, CLIENT_SECRET, {
242+
bucket,
243+
endpoints: {
244+
s3: TEST_S3_ENDPOINT,
245+
rpc: TEST_RPC_ENDPOINT,
246+
platform: TEST_PLATFORM_ENDPOINT,
247+
},
248+
});
249+
250+
// Upload Object
251+
await filebaseClient.uploadFiles(body);
252+
253+
return true;
254+
}
255+
239256
async function deleteObject(bucket, key) {
240257
// Initialize FilebaseClient
241258
const filebaseClient = new FilebaseClient(CLIENT_KEY, CLIENT_SECRET, {
@@ -326,6 +343,41 @@ test("upload object", async () => {
326343
}
327344
});
328345

346+
test("upload objects", async () => {
347+
// Create Bucket `create-objects-test-pass
348+
const uploadTestBucket = `${TEST_PREFIX}-create-objects-test-pass`;
349+
await createBucket(uploadTestBucket);
350+
351+
try {
352+
// Upload object `create-object-test`
353+
const objectPrefix = `create-objects-test/`;
354+
const objectsForm = new FormData();
355+
objectsForm.append(
356+
"file",
357+
new Blob(["upload object 1"]),
358+
`${objectPrefix}testObjects/1.txt`,
359+
);
360+
objectsForm.append(
361+
"file",
362+
new Blob(["upload object 2"]),
363+
`${objectPrefix}testObjects/2.txt`,
364+
);
365+
objectsForm.append(
366+
"file",
367+
new Blob(["upload object 3"]),
368+
`${objectPrefix}testObjects/3.txt`,
369+
);
370+
const uploaded = await uploadFiles(uploadTestBucket, objectsForm);
371+
372+
assert.notEqual(uploaded, false);
373+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/1.txt`);
374+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/2.txt`);
375+
await deleteObject(uploadTestBucket, `${objectPrefix}testObjects/3.txt`);
376+
} finally {
377+
await deleteBucket(uploadTestBucket);
378+
}
379+
});
380+
329381
test("upload directory", async () => {
330382
// Create Bucket `create-object-test-pass
331383
const uploadDirectoryTestBucket = `${TEST_PREFIX}-create-directory-test-pass`;

0 commit comments

Comments
 (0)