@oxyhq/services 5.10.6 → 5.10.7
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/lib/commonjs/index.js +1 -31
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +0 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +0 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -3
- package/src/index.ts +1 -17
- package/lib/commonjs/utils/s3FileManager.js +0 -243
- package/lib/commonjs/utils/s3FileManager.js.map +0 -1
- package/lib/commonjs/utils/s3FileManagerExample.js +0 -407
- package/lib/commonjs/utils/s3FileManagerExample.js.map +0 -1
- package/lib/commonjs/utils/s3FileManagerRN.js +0 -274
- package/lib/commonjs/utils/s3FileManagerRN.js.map +0 -1
- package/lib/module/utils/s3FileManager.js +0 -237
- package/lib/module/utils/s3FileManager.js.map +0 -1
- package/lib/module/utils/s3FileManagerExample.js +0 -400
- package/lib/module/utils/s3FileManagerExample.js.map +0 -1
- package/lib/module/utils/s3FileManagerRN.js +0 -268
- package/lib/module/utils/s3FileManagerRN.js.map +0 -1
- package/lib/typescript/utils/s3FileManager.d.ts +0 -81
- package/lib/typescript/utils/s3FileManager.d.ts.map +0 -1
- package/lib/typescript/utils/s3FileManagerExample.d.ts +0 -87
- package/lib/typescript/utils/s3FileManagerExample.d.ts.map +0 -1
- package/lib/typescript/utils/s3FileManagerRN.d.ts +0 -104
- package/lib/typescript/utils/s3FileManagerRN.d.ts.map +0 -1
- package/src/utils/s3FileManager.ts +0 -281
- package/src/utils/s3FileManagerExample.ts +0 -432
- package/src/utils/s3FileManagerRN.ts +0 -322
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createS3FileManager","createS3FileManagerRN","s3Config","region","accessKeyId","secretAccessKey","bucketName","WebFileManagerExample","constructor","s3Manager","uploadFileFromForm","fileInput","file","files","Error","key","Date","now","name","uploadOptions","contentType","type","metadata","originalName","uploadedBy","uploadedAt","toISOString","publicRead","url","uploadFile","console","log","error","uploadMultipleFiles","fileList","Array","from","map","options","urls","downloadFile","buffer","blob","Blob","URL","createObjectURL","a","document","createElement","href","download","split","pop","body","appendChild","click","removeChild","revokeObjectURL","getPresignedUrls","uploadUrl","getPresignedUploadUrl","downloadUrl","getPresignedDownloadUrl","upload","listFiles","prefix","maxKeys","forEach","size","lastModified","performFileOperations","sourceKey","destKey","copyFile","moveFile","deleteFile","ReactNativeFileManagerExample","uploadFileFromRN","fileInfo","fileSize","toString","uploadImageWithValidation","maxSize","getFileSize","category","uploadImage","downloadFileToRN","length","performBatchOperations","uploadPromises","index","batchId","uploadedUrls","Promise","all","keysToDelete","deleteMultipleFiles","useS3FileManager","webManager","rnManager","handleFileUpload","mockInput","handleFileDownload","window","bind","uploadWithRetry","maxRetries","isRNManager","manager","lastError","attempt","warn","delay","Math","pow","resolve","setTimeout","message","validateFile","errors","allowedTypes","allowedExtensions","push","includes","extension","toLowerCase","isValid"],"sourceRoot":"../../../src","sources":["utils/s3FileManagerExample.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAEEA,mBAAmB,QAGd,iBAAiB;AACxB,SAEEC,qBAAqB,QAEhB,mBAAmB;;AAE1B;AACA,MAAMC,QAAkB,GAAG;EACzBC,MAAM,EAAE,WAAW;EACnBC,WAAW,EAAE,oBAAoB;EACjCC,eAAe,EAAE,wBAAwB;EACzCC,UAAU,EAAE;AACd,CAAC;;AAED;AACA;AACA;;AAEA,OAAO,MAAMC,qBAAqB,CAAC;EAGjCC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,SAAS,GAAGT,mBAAmB,CAACE,QAAQ,CAAC;EAChD;;EAEA;AACF;AACA;EACE,MAAMQ,kBAAkBA,CAACC,SAA2B,EAAmB;IACrE,MAAMC,IAAI,GAAGD,SAAS,CAACE,KAAK,GAAG,CAAC,CAAC;IACjC,IAAI,CAACD,IAAI,EAAE;MACT,MAAM,IAAIE,KAAK,CAAC,kBAAkB,CAAC;IACrC;IAEA,MAAMC,GAAG,GAAG,WAAWC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIL,IAAI,CAACM,IAAI,EAAE;IAChD,MAAMC,aAA4B,GAAG;MACnCC,WAAW,EAAER,IAAI,CAACS,IAAI;MACtBC,QAAQ,EAAE;QACRC,YAAY,EAAEX,IAAI,CAACM,IAAI;QACvBM,UAAU,EAAE,UAAU;QACtBC,UAAU,EAAE,IAAIT,IAAI,CAAC,CAAC,CAACU,WAAW,CAAC;MACrC,CAAC;MACDC,UAAU,EAAE;IACd,CAAC;IAED,IAAI;MACF,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACnB,SAAS,CAACoB,UAAU,CAACd,GAAG,EAAEH,IAAI,EAAEO,aAAa,CAAC;MACrEW,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAEH,GAAG,CAAC;MAC/C,OAAOA,GAAG;IACZ,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;MACtC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMC,mBAAmBA,CAACC,QAAkB,EAAqB;IAC/D,MAAMrB,KAAK,GAAGsB,KAAK,CAACC,IAAI,CAACF,QAAQ,CAAC,CAACG,GAAG,CAACzB,IAAI,KAAK;MAC9CG,GAAG,EAAE,WAAWC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIL,IAAI,CAACM,IAAI,EAAE;MACzCN,IAAI;MACJ0B,OAAO,EAAE;QACPlB,WAAW,EAAER,IAAI,CAACS,IAAI;QACtBC,QAAQ,EAAE;UACRC,YAAY,EAAEX,IAAI,CAACM,IAAI;UACvBM,UAAU,EAAE,UAAU;UACtBC,UAAU,EAAE,IAAIT,IAAI,CAAC,CAAC,CAACU,WAAW,CAAC;QACrC,CAAC;QACDC,UAAU,EAAE;MACd;IACF,CAAC,CAAC,CAAC;IAEH,IAAI;MACF,MAAMY,IAAI,GAAG,MAAM,IAAI,CAAC9B,SAAS,CAACwB,mBAAmB,CAACpB,KAAK,CAAC;MAC5DiB,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEQ,IAAI,CAAC;MACjD,OAAOA,IAAI;IACb,CAAC,CAAC,OAAOP,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;MACtC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMQ,YAAYA,CAACzB,GAAW,EAAiB;IAC7C,IAAI;MACF,MAAM0B,MAAM,GAAG,MAAM,IAAI,CAAChC,SAAS,CAAC+B,YAAY,CAACzB,GAAG,CAAC;;MAErD;MACA,MAAM2B,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACF,MAAM,CAAC,CAAC;MAC/B,MAAMb,GAAG,GAAGgB,GAAG,CAACC,eAAe,CAACH,IAAI,CAAC;MACrC,MAAMI,CAAC,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;MACrCF,CAAC,CAACG,IAAI,GAAGrB,GAAG;MACZkB,CAAC,CAACI,QAAQ,GAAGnC,GAAG,CAACoC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,UAAU;MAC/CL,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACR,CAAC,CAAC;MAC5BA,CAAC,CAACS,KAAK,CAAC,CAAC;MACTR,QAAQ,CAACM,IAAI,CAACG,WAAW,CAACV,CAAC,CAAC;MAC5BF,GAAG,CAACa,eAAe,CAAC7B,GAAG,CAAC;MAExBE,OAAO,CAACC,GAAG,CAAC,8BAA8B,CAAC;IAC7C,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC;MACxC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAM0B,gBAAgBA,CAAC3C,GAAW,EAAiD;IACjF,IAAI;MACF,MAAM4C,SAAS,GAAG,MAAM,IAAI,CAAClD,SAAS,CAACmD,qBAAqB,CAAC7C,GAAG,EAAE,0BAA0B,CAAC;MAC7F,MAAM8C,WAAW,GAAG,MAAM,IAAI,CAACpD,SAAS,CAACqD,uBAAuB,CAAC/C,GAAG,CAAC;MAErE,OAAO;QAAEgD,MAAM,EAAEJ,SAAS;QAAET,QAAQ,EAAEW;MAAY,CAAC;IACrD,CAAC,CAAC,OAAO7B,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;MACrD,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMgC,SAASA,CAACC,MAAc,GAAG,EAAE,EAAEC,OAAe,GAAG,EAAE,EAAiB;IACxE,IAAI;MACF,MAAMrD,KAAK,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACuD,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC;MAC7DpC,OAAO,CAACC,GAAG,CAAC,cAAc,EAAElB,KAAK,CAAC;MAElCA,KAAK,CAACsD,OAAO,CAACvD,IAAI,IAAI;QACpBkB,OAAO,CAACC,GAAG,CAAC,KAAKnB,IAAI,CAACG,GAAG,KAAKH,IAAI,CAACwD,IAAI,qBAAqBxD,IAAI,CAACyD,YAAY,GAAG,CAAC;MACnF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOrC,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMsC,qBAAqBA,CAAA,EAAkB;IAC3C,MAAMC,SAAS,GAAG,yBAAyB;IAC3C,MAAMC,OAAO,GAAG,8BAA8B;IAE9C,IAAI;MACF;MACA,MAAM,IAAI,CAAC/D,SAAS,CAACgE,QAAQ,CAACF,SAAS,EAAEC,OAAO,CAAC;MACjD1C,OAAO,CAACC,GAAG,CAAC,0BAA0B,CAAC;;MAEvC;MACA,MAAM,IAAI,CAACtB,SAAS,CAACiE,QAAQ,CAACF,OAAO,EAAE,wBAAwB,CAAC;MAChE1C,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;;MAEtC;MACA,MAAM,IAAI,CAACtB,SAAS,CAACkE,UAAU,CAAC,wBAAwB,CAAC;MACzD7C,OAAO,CAACC,GAAG,CAAC,2BAA2B,CAAC;IAC1C,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;MAC9C,MAAMA,KAAK;IACb;EACF;AACF;;AAEA;AACA;AACA;;AAEA,OAAO,MAAM4C,6BAA6B,CAAC;EAGzCpE,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,SAAS,GAAGR,qBAAqB,CAACC,QAAQ,CAAC;EAClD;;EAEA;AACF;AACA;EACE,MAAM2E,gBAAgBA,CAACC,QAAgB,EAAmB;IACxD,MAAM/D,GAAG,GAAG,WAAWC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI6D,QAAQ,CAAC5D,IAAI,EAAE;IACpD,MAAMC,aAA4B,GAAG;MACnCC,WAAW,EAAE0D,QAAQ,CAACzD,IAAI,IAAI,0BAA0B;MACxDC,QAAQ,EAAE;QACRC,YAAY,EAAEuD,QAAQ,CAAC5D,IAAI;QAC3BM,UAAU,EAAE,SAAS;QACrBC,UAAU,EAAE,IAAIT,IAAI,CAAC,CAAC,CAACU,WAAW,CAAC,CAAC;QACpCqD,QAAQ,EAAED,QAAQ,CAACV,IAAI,EAAEY,QAAQ,CAAC,CAAC,IAAI;MACzC,CAAC;MACDrD,UAAU,EAAE;IACd,CAAC;IAED,IAAI;MACF,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACnB,SAAS,CAACoB,UAAU,CAACd,GAAG,EAAE+D,QAAQ,EAAE3D,aAAa,CAAC;MACzEW,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAEH,GAAG,CAAC;MAC/C,OAAOA,GAAG;IACZ,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;MACtC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMiD,yBAAyBA,CAACH,QAAgB,EAAEI,OAAe,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAmB;IACpG;IACA,MAAMH,QAAQ,GAAG,MAAM,IAAI,CAACtE,SAAS,CAAC0E,WAAW,CAACL,QAAQ,CAAC;IAE3D,IAAIC,QAAQ,GAAGG,OAAO,EAAE;MACtB,MAAM,IAAIpE,KAAK,CAAC,cAAciE,QAAQ,yCAAyCG,OAAO,SAAS,CAAC;IAClG;IAEA,MAAMnE,GAAG,GAAG,UAAUC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI6D,QAAQ,CAAC5D,IAAI,EAAE;IACnD,MAAMC,aAA4B,GAAG;MACnCC,WAAW,EAAE0D,QAAQ,CAACzD,IAAI,IAAI,YAAY;MAC1CC,QAAQ,EAAE;QACRC,YAAY,EAAEuD,QAAQ,CAAC5D,IAAI;QAC3BM,UAAU,EAAE,SAAS;QACrBC,UAAU,EAAE,IAAIT,IAAI,CAAC,CAAC,CAACU,WAAW,CAAC,CAAC;QACpCqD,QAAQ,EAAEA,QAAQ,CAACC,QAAQ,CAAC,CAAC;QAC7BI,QAAQ,EAAE;MACZ,CAAC;MACDzD,UAAU,EAAE,IAAI,CAAE;IACpB,CAAC;IAED,IAAI;MACF,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACnB,SAAS,CAAC4E,WAAW,CAACtE,GAAG,EAAE+D,QAAQ,EAAE3D,aAAa,CAAC;MAC1EW,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEH,GAAG,CAAC;MAChD,OAAOA,GAAG;IACZ,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;MAC5C,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMsD,gBAAgBA,CAACvE,GAAW,EAAmB;IACnD,IAAI;MACF,MAAM0B,MAAM,GAAG,MAAM,IAAI,CAAChC,SAAS,CAAC+B,YAAY,CAACzB,GAAG,CAAC;MACrDe,OAAO,CAACC,GAAG,CAAC,qCAAqC,EAAEU,MAAM,CAAC8C,MAAM,CAAC;MACjE,OAAO9C,MAAM;IACf,CAAC,CAAC,OAAOT,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC;MACxC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMwD,sBAAsBA,CAAC3E,KAAe,EAAiB;IAC3D,IAAI;MACF;MACA,MAAM4E,cAAc,GAAG5E,KAAK,CAACwB,GAAG,CAAC,CAACzB,IAAI,EAAE8E,KAAK,KAAK;QAChD,MAAM3E,GAAG,GAAG,iBAAiBC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIyE,KAAK,IAAI9E,IAAI,CAACM,IAAI,EAAE;QAC/D,OAAO,IAAI,CAACT,SAAS,CAACoB,UAAU,CAACd,GAAG,EAAEH,IAAI,EAAE;UAC1CU,QAAQ,EAAE;YAAEqE,OAAO,EAAE3E,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC+D,QAAQ,CAAC;UAAE;QAC7C,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,MAAMY,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACL,cAAc,CAAC;MACtD3D,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAE6D,YAAY,CAAC;;MAEpD;MACA,MAAMG,YAAY,GAAGH,YAAY,CAACvD,GAAG,CAAET,GAAW,IAAK;QACrD,MAAMb,GAAG,GAAGa,GAAG,CAACuB,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;QAChC,OAAO,iBAAiBrC,GAAG,EAAE;MAC/B,CAAC,CAAC;MAEF,MAAM,IAAI,CAACN,SAAS,CAACuF,mBAAmB,CAACD,YAAY,CAAC;MACtDjE,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACvC,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;MAChD,MAAMA,KAAK;IACb;EACF;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,MAAMiE,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,UAAU,GAAG,IAAI3F,qBAAqB,CAAC,CAAC;EAC9C,MAAM4F,SAAS,GAAG,IAAIvB,6BAA6B,CAAC,CAAC;EAErD,MAAMwB,gBAAgB,GAAG,MAAOxF,IAAmB,IAAK;IACtD,IAAI;MACF,IAAI,KAAK,IAAIA,IAAI,EAAE;QACjB;QACA,OAAO,MAAMuF,SAAS,CAACtB,gBAAgB,CAACjE,IAAI,CAAC;MAC/C,CAAC,MAAM;QACL;QACA,MAAMyF,SAAS,GAAG;UAAExF,KAAK,EAAE,CAACD,IAAI;QAAE,CAAgC;QAClE,OAAO,MAAMsF,UAAU,CAACxF,kBAAkB,CAAC2F,SAAS,CAAC;MACvD;IACF,CAAC,CAAC,OAAOrE,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;MACtC,MAAMA,KAAK;IACb;EACF,CAAC;EAED,MAAMsE,kBAAkB,GAAG,MAAOvF,GAAW,IAAK;IAChD,IAAI;MACF,IAAI,OAAOwF,MAAM,KAAK,WAAW,EAAE;QACjC;QACA,MAAML,UAAU,CAAC1D,YAAY,CAACzB,GAAG,CAAC;MACpC,CAAC,MAAM;QACL;QACA,MAAM0B,MAAM,GAAG,MAAM0D,SAAS,CAACb,gBAAgB,CAACvE,GAAG,CAAC;QACpD;QACA,OAAO0B,MAAM;MACf;IACF,CAAC,CAAC,OAAOT,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC;MACxC,MAAMA,KAAK;IACb;EACF,CAAC;EAED,OAAO;IACLH,UAAU,EAAEuE,gBAAgB;IAC5B5D,YAAY,EAAE8D,kBAAkB;IAChCtC,SAAS,EAAEkC,UAAU,CAAClC,SAAS,CAACwC,IAAI,CAACN,UAAU,CAAC;IAChDxC,gBAAgB,EAAEwC,UAAU,CAACxC,gBAAgB,CAAC8C,IAAI,CAACN,UAAU;EAC/D,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,eAAe,GAAG,MAAAA,CAC7BhG,SAA0C,EAC1CM,GAAW,EACXH,IAA4B,EAC5B0B,OAAsB,GAAG,CAAC,CAAC,EAC3BoE,UAAkB,GAAG,CAAC,KACF;EACpB;EACA,MAAMC,WAAW,GAAIC,OAAwC,IAAiC;IAC5F,OAAO,aAAa,IAAIA,OAAO;EACjC,CAAC;EACD,IAAIC,SAA4B;EAEhC,KAAK,IAAIC,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAIJ,UAAU,EAAEI,OAAO,EAAE,EAAE;IACtD,IAAI;MACF,IAAIH,WAAW,CAAClG,SAAS,CAAC,EAAE;QAC1B;QACA,IAAI,KAAK,IAAIG,IAAI,EAAE;UACjB,OAAO,MAAMH,SAAS,CAACoB,UAAU,CAACd,GAAG,EAAEH,IAAI,EAAE0B,OAAO,CAAC;QACvD,CAAC,MAAM;UACL,MAAM,IAAIxB,KAAK,CAAC,wDAAwD,CAAC;QAC3E;MACF,CAAC,MAAM;QACL;QACA,IAAI,KAAK,IAAIF,IAAI,EAAE;UACjB,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;QACxD,CAAC,MAAM;UACL,OAAO,MAAML,SAAS,CAACoB,UAAU,CAACd,GAAG,EAAEH,IAAI,EAAE0B,OAAO,CAAC;QACvD;MACF;IACF,CAAC,CAAC,OAAON,KAAK,EAAE;MACd6E,SAAS,GAAG7E,KAAc;MAC1BF,OAAO,CAACiF,IAAI,CAAC,kBAAkBD,OAAO,UAAU,EAAE9E,KAAK,CAAC;MAExD,IAAI8E,OAAO,GAAGJ,UAAU,EAAE;QACxB;QACA,MAAMM,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,OAAO,CAAC,GAAG,IAAI;QACzC,MAAM,IAAIjB,OAAO,CAACsB,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEH,KAAK,CAAC,CAAC;MAC1D;IACF;EACF;EAEA,MAAM,IAAIlG,KAAK,CAAC,uBAAuB4F,UAAU,0BAA0BG,SAAS,EAAEQ,OAAO,IAAI,eAAe,EAAE,CAAC;AACrH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1B1G,IAAmB,EACnB0B,OAIC,GAAG,CAAC,CAAC,KACqC;EAC3C,MAAMiF,MAAgB,GAAG,EAAE;EAC3B,MAAM;IAAErC,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;IAAEsC,YAAY,GAAG,EAAE;IAAEC,iBAAiB,GAAG;EAAG,CAAC,GAAGnF,OAAO;;EAEzF;EACA,IAAI,MAAM,IAAI1B,IAAI,IAAIA,IAAI,CAACwD,IAAI,IAAIxD,IAAI,CAACwD,IAAI,GAAGc,OAAO,EAAE;IACtDqC,MAAM,CAACG,IAAI,CAAC,cAAc9G,IAAI,CAACwD,IAAI,yCAAyCc,OAAO,SAAS,CAAC;EAC/F;;EAEA;EACA,IAAI,MAAM,IAAItE,IAAI,IAAIA,IAAI,CAACS,IAAI,IAAImG,YAAY,CAACjC,MAAM,GAAG,CAAC,IAAI,CAACiC,YAAY,CAACG,QAAQ,CAAC/G,IAAI,CAACS,IAAI,CAAC,EAAE;IAC/FkG,MAAM,CAACG,IAAI,CAAC,cAAc9G,IAAI,CAACS,IAAI,kBAAkB,CAAC;EACxD;;EAEA;EACA,IAAIoG,iBAAiB,CAAClC,MAAM,GAAG,CAAC,EAAE;IAChC,MAAMqC,SAAS,GAAGhH,IAAI,CAACM,IAAI,CAACiC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,EAAEyE,WAAW,CAAC,CAAC;IAC3D,IAAI,CAACD,SAAS,IAAI,CAACH,iBAAiB,CAACE,QAAQ,CAAC,IAAIC,SAAS,EAAE,CAAC,EAAE;MAC9DL,MAAM,CAACG,IAAI,CAAC,oBAAoBE,SAAS,kBAAkB,CAAC;IAC9D;EACF;EAEA,OAAO;IACLE,OAAO,EAAEP,MAAM,CAAChC,MAAM,KAAK,CAAC;IAC5BgC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { S3Client, PutObjectCommand, GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command } from '@aws-sdk/client-s3';
|
|
4
|
-
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
5
|
-
export class S3FileManagerRN {
|
|
6
|
-
constructor(config) {
|
|
7
|
-
this.s3Client = new S3Client({
|
|
8
|
-
region: config.region,
|
|
9
|
-
credentials: {
|
|
10
|
-
accessKeyId: config.accessKeyId,
|
|
11
|
-
secretAccessKey: config.secretAccessKey
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
this.bucketName = config.bucketName;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Upload a file to S3 from React Native
|
|
19
|
-
*/
|
|
20
|
-
async uploadFile(key, file, options = {}) {
|
|
21
|
-
let body;
|
|
22
|
-
let contentType = options.contentType;
|
|
23
|
-
if (this.isRNFile(file)) {
|
|
24
|
-
body = await this.rnFileToBuffer(file);
|
|
25
|
-
contentType = contentType || file.type || 'application/octet-stream';
|
|
26
|
-
} else if (typeof file === 'string') {
|
|
27
|
-
body = file;
|
|
28
|
-
contentType = contentType || 'text/plain';
|
|
29
|
-
} else {
|
|
30
|
-
body = file;
|
|
31
|
-
contentType = contentType || 'application/octet-stream';
|
|
32
|
-
}
|
|
33
|
-
const command = new PutObjectCommand({
|
|
34
|
-
Bucket: this.bucketName,
|
|
35
|
-
Key: key,
|
|
36
|
-
Body: body,
|
|
37
|
-
ContentType: contentType,
|
|
38
|
-
Metadata: options.metadata,
|
|
39
|
-
ACL: options.publicRead ? 'public-read' : 'private'
|
|
40
|
-
});
|
|
41
|
-
await this.s3Client.send(command);
|
|
42
|
-
return `https://${this.bucketName}.s3.amazonaws.com/${key}`;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Download a file from S3 to React Native
|
|
47
|
-
*/
|
|
48
|
-
async downloadFile(key) {
|
|
49
|
-
const command = new GetObjectCommand({
|
|
50
|
-
Bucket: this.bucketName,
|
|
51
|
-
Key: key
|
|
52
|
-
});
|
|
53
|
-
const response = await this.s3Client.send(command);
|
|
54
|
-
if (!response.Body) {
|
|
55
|
-
throw new Error('File not found or empty');
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Convert stream to buffer
|
|
59
|
-
const chunks = [];
|
|
60
|
-
const reader = response.Body.transformToWebStream().getReader();
|
|
61
|
-
while (true) {
|
|
62
|
-
const {
|
|
63
|
-
done,
|
|
64
|
-
value
|
|
65
|
-
} = await reader.read();
|
|
66
|
-
if (done) break;
|
|
67
|
-
chunks.push(value);
|
|
68
|
-
}
|
|
69
|
-
return Buffer.concat(chunks);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Delete a file from S3
|
|
74
|
-
*/
|
|
75
|
-
async deleteFile(key) {
|
|
76
|
-
const command = new DeleteObjectCommand({
|
|
77
|
-
Bucket: this.bucketName,
|
|
78
|
-
Key: key
|
|
79
|
-
});
|
|
80
|
-
await this.s3Client.send(command);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Generate a presigned URL for file upload
|
|
85
|
-
*/
|
|
86
|
-
async getPresignedUploadUrl(key, contentType, expiresIn = 3600) {
|
|
87
|
-
const command = new PutObjectCommand({
|
|
88
|
-
Bucket: this.bucketName,
|
|
89
|
-
Key: key,
|
|
90
|
-
ContentType: contentType
|
|
91
|
-
});
|
|
92
|
-
return getSignedUrl(this.s3Client, command, {
|
|
93
|
-
expiresIn
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Generate a presigned URL for file download
|
|
99
|
-
*/
|
|
100
|
-
async getPresignedDownloadUrl(key, expiresIn = 3600) {
|
|
101
|
-
const command = new GetObjectCommand({
|
|
102
|
-
Bucket: this.bucketName,
|
|
103
|
-
Key: key
|
|
104
|
-
});
|
|
105
|
-
return getSignedUrl(this.s3Client, command, {
|
|
106
|
-
expiresIn
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* List files in a directory
|
|
112
|
-
*/
|
|
113
|
-
async listFiles(prefix = '', maxKeys = 1000) {
|
|
114
|
-
const command = new ListObjectsV2Command({
|
|
115
|
-
Bucket: this.bucketName,
|
|
116
|
-
Prefix: prefix,
|
|
117
|
-
MaxKeys: maxKeys
|
|
118
|
-
});
|
|
119
|
-
const response = await this.s3Client.send(command);
|
|
120
|
-
if (!response.Contents) {
|
|
121
|
-
return [];
|
|
122
|
-
}
|
|
123
|
-
return response.Contents.map(item => ({
|
|
124
|
-
key: item.Key,
|
|
125
|
-
size: item.Size || 0,
|
|
126
|
-
lastModified: item.LastModified
|
|
127
|
-
}));
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Check if a file exists
|
|
132
|
-
*/
|
|
133
|
-
async fileExists(key) {
|
|
134
|
-
try {
|
|
135
|
-
const command = new GetObjectCommand({
|
|
136
|
-
Bucket: this.bucketName,
|
|
137
|
-
Key: key
|
|
138
|
-
});
|
|
139
|
-
await this.s3Client.send(command);
|
|
140
|
-
return true;
|
|
141
|
-
} catch (error) {
|
|
142
|
-
if (error.name === 'NoSuchKey') {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
throw error;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Get file metadata
|
|
151
|
-
*/
|
|
152
|
-
async getFileMetadata(key) {
|
|
153
|
-
try {
|
|
154
|
-
const command = new GetObjectCommand({
|
|
155
|
-
Bucket: this.bucketName,
|
|
156
|
-
Key: key
|
|
157
|
-
});
|
|
158
|
-
const response = await this.s3Client.send(command);
|
|
159
|
-
return {
|
|
160
|
-
key,
|
|
161
|
-
size: parseInt(response.ContentLength?.toString() || '0'),
|
|
162
|
-
lastModified: response.LastModified,
|
|
163
|
-
contentType: response.ContentType,
|
|
164
|
-
metadata: response.Metadata
|
|
165
|
-
};
|
|
166
|
-
} catch (error) {
|
|
167
|
-
if (error.name === 'NoSuchKey') {
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
throw error;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Convert React Native file to Buffer
|
|
176
|
-
*/
|
|
177
|
-
async rnFileToBuffer(file) {
|
|
178
|
-
try {
|
|
179
|
-
// For React Native, we need to fetch the file from the URI
|
|
180
|
-
const response = await fetch(file.uri);
|
|
181
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
182
|
-
return Buffer.from(arrayBuffer);
|
|
183
|
-
} catch (error) {
|
|
184
|
-
throw new Error(`Failed to read React Native file: ${error}`);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Type guard to check if object is RNFile
|
|
190
|
-
*/
|
|
191
|
-
isRNFile(file) {
|
|
192
|
-
return file && typeof file === 'object' && 'uri' in file && 'name' in file;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Upload multiple files
|
|
197
|
-
*/
|
|
198
|
-
async uploadMultipleFiles(files) {
|
|
199
|
-
const uploadPromises = files.map(({
|
|
200
|
-
key,
|
|
201
|
-
file,
|
|
202
|
-
options
|
|
203
|
-
}) => this.uploadFile(key, file, options));
|
|
204
|
-
return Promise.all(uploadPromises);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Delete multiple files
|
|
209
|
-
*/
|
|
210
|
-
async deleteMultipleFiles(keys) {
|
|
211
|
-
const deletePromises = keys.map(key => this.deleteFile(key));
|
|
212
|
-
await Promise.all(deletePromises);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Copy file from one key to another
|
|
217
|
-
*/
|
|
218
|
-
async copyFile(sourceKey, destinationKey) {
|
|
219
|
-
const command = new PutObjectCommand({
|
|
220
|
-
Bucket: this.bucketName,
|
|
221
|
-
Key: destinationKey,
|
|
222
|
-
Body: await this.downloadFile(sourceKey)
|
|
223
|
-
});
|
|
224
|
-
await this.s3Client.send(command);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Move file (copy + delete)
|
|
229
|
-
*/
|
|
230
|
-
async moveFile(sourceKey, destinationKey) {
|
|
231
|
-
await this.copyFile(sourceKey, destinationKey);
|
|
232
|
-
await this.deleteFile(sourceKey);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Upload image with automatic resizing (placeholder for future implementation)
|
|
237
|
-
*/
|
|
238
|
-
async uploadImage(key, file, options = {}) {
|
|
239
|
-
// For now, just upload as regular file
|
|
240
|
-
// In the future, this could integrate with image processing libraries
|
|
241
|
-
return this.uploadFile(key, file, options);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* Get file size from React Native file
|
|
246
|
-
*/
|
|
247
|
-
async getFileSize(file) {
|
|
248
|
-
if (file.size) {
|
|
249
|
-
return file.size;
|
|
250
|
-
}
|
|
251
|
-
try {
|
|
252
|
-
const response = await fetch(file.uri, {
|
|
253
|
-
method: 'HEAD'
|
|
254
|
-
});
|
|
255
|
-
const contentLength = response.headers.get('content-length');
|
|
256
|
-
return contentLength ? parseInt(contentLength, 10) : 0;
|
|
257
|
-
} catch (error) {
|
|
258
|
-
console.warn('Could not determine file size:', error);
|
|
259
|
-
return 0;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
// Export a factory function for easier configuration
|
|
265
|
-
export function createS3FileManagerRN(config) {
|
|
266
|
-
return new S3FileManagerRN(config);
|
|
267
|
-
}
|
|
268
|
-
//# sourceMappingURL=s3FileManagerRN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["S3Client","PutObjectCommand","GetObjectCommand","DeleteObjectCommand","ListObjectsV2Command","getSignedUrl","S3FileManagerRN","constructor","config","s3Client","region","credentials","accessKeyId","secretAccessKey","bucketName","uploadFile","key","file","options","body","contentType","isRNFile","rnFileToBuffer","type","command","Bucket","Key","Body","ContentType","Metadata","metadata","ACL","publicRead","send","downloadFile","response","Error","chunks","reader","transformToWebStream","getReader","done","value","read","push","Buffer","concat","deleteFile","getPresignedUploadUrl","expiresIn","getPresignedDownloadUrl","listFiles","prefix","maxKeys","Prefix","MaxKeys","Contents","map","item","size","Size","lastModified","LastModified","fileExists","error","name","getFileMetadata","parseInt","ContentLength","toString","fetch","uri","arrayBuffer","from","uploadMultipleFiles","files","uploadPromises","Promise","all","deleteMultipleFiles","keys","deletePromises","copyFile","sourceKey","destinationKey","moveFile","uploadImage","getFileSize","method","contentLength","headers","get","console","warn","createS3FileManagerRN"],"sourceRoot":"../../../src","sources":["utils/s3FileManagerRN.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
export interface S3Config {
|
|
2
|
-
region: string;
|
|
3
|
-
accessKeyId: string;
|
|
4
|
-
secretAccessKey: string;
|
|
5
|
-
bucketName: string;
|
|
6
|
-
}
|
|
7
|
-
export interface UploadOptions {
|
|
8
|
-
contentType?: string;
|
|
9
|
-
metadata?: Record<string, string>;
|
|
10
|
-
publicRead?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface FileInfo {
|
|
13
|
-
key: string;
|
|
14
|
-
size: number;
|
|
15
|
-
lastModified: Date;
|
|
16
|
-
contentType?: string;
|
|
17
|
-
metadata?: Record<string, string>;
|
|
18
|
-
}
|
|
19
|
-
export declare class S3FileManager {
|
|
20
|
-
private s3Client;
|
|
21
|
-
private bucketName;
|
|
22
|
-
constructor(config: S3Config);
|
|
23
|
-
/**
|
|
24
|
-
* Upload a file to S3
|
|
25
|
-
*/
|
|
26
|
-
uploadFile(key: string, file: File | Buffer | string, options?: UploadOptions): Promise<string>;
|
|
27
|
-
/**
|
|
28
|
-
* Download a file from S3
|
|
29
|
-
*/
|
|
30
|
-
downloadFile(key: string): Promise<Buffer>;
|
|
31
|
-
/**
|
|
32
|
-
* Delete a file from S3
|
|
33
|
-
*/
|
|
34
|
-
deleteFile(key: string): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Generate a presigned URL for file upload
|
|
37
|
-
*/
|
|
38
|
-
getPresignedUploadUrl(key: string, contentType: string, expiresIn?: number): Promise<string>;
|
|
39
|
-
/**
|
|
40
|
-
* Generate a presigned URL for file download
|
|
41
|
-
*/
|
|
42
|
-
getPresignedDownloadUrl(key: string, expiresIn?: number): Promise<string>;
|
|
43
|
-
/**
|
|
44
|
-
* List files in a directory
|
|
45
|
-
*/
|
|
46
|
-
listFiles(prefix?: string, maxKeys?: number): Promise<FileInfo[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Check if a file exists
|
|
49
|
-
*/
|
|
50
|
-
fileExists(key: string): Promise<boolean>;
|
|
51
|
-
/**
|
|
52
|
-
* Get file metadata
|
|
53
|
-
*/
|
|
54
|
-
getFileMetadata(key: string): Promise<FileInfo | null>;
|
|
55
|
-
/**
|
|
56
|
-
* Convert File object to Buffer (for React Native compatibility)
|
|
57
|
-
*/
|
|
58
|
-
private fileToBuffer;
|
|
59
|
-
/**
|
|
60
|
-
* Upload multiple files
|
|
61
|
-
*/
|
|
62
|
-
uploadMultipleFiles(files: Array<{
|
|
63
|
-
key: string;
|
|
64
|
-
file: File | Buffer | string;
|
|
65
|
-
options?: UploadOptions;
|
|
66
|
-
}>): Promise<string[]>;
|
|
67
|
-
/**
|
|
68
|
-
* Delete multiple files
|
|
69
|
-
*/
|
|
70
|
-
deleteMultipleFiles(keys: string[]): Promise<void>;
|
|
71
|
-
/**
|
|
72
|
-
* Copy file from one key to another
|
|
73
|
-
*/
|
|
74
|
-
copyFile(sourceKey: string, destinationKey: string): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* Move file (copy + delete)
|
|
77
|
-
*/
|
|
78
|
-
moveFile(sourceKey: string, destinationKey: string): Promise<void>;
|
|
79
|
-
}
|
|
80
|
-
export declare function createS3FileManager(config: S3Config): S3FileManager;
|
|
81
|
-
//# sourceMappingURL=s3FileManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s3FileManager.d.ts","sourceRoot":"","sources":["../../../src/utils/s3FileManager.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,QAAQ;IAW5B;;OAEG;IACG,UAAU,CACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC;IA4BlB;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBhD;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C;;OAEG;IACG,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACG,uBAAuB,CAC3B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,MAAM,CAAC;IASlB;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoBjF;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB/C;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwB5D;;OAEG;YACW,YAAY;IAe1B;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,GACnF,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzE;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAEnE"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* S3 File Management Examples
|
|
3
|
-
*
|
|
4
|
-
* This file demonstrates how to use the S3 file management functionality
|
|
5
|
-
* in both web and React Native environments.
|
|
6
|
-
*/
|
|
7
|
-
import { S3FileManager, UploadOptions } from './s3FileManager';
|
|
8
|
-
import { S3FileManagerRN, RNFile } from './s3FileManagerRN';
|
|
9
|
-
export declare class WebFileManagerExample {
|
|
10
|
-
private s3Manager;
|
|
11
|
-
constructor();
|
|
12
|
-
/**
|
|
13
|
-
* Example: Upload a file from web form
|
|
14
|
-
*/
|
|
15
|
-
uploadFileFromForm(fileInput: HTMLInputElement): Promise<string>;
|
|
16
|
-
/**
|
|
17
|
-
* Example: Upload multiple files
|
|
18
|
-
*/
|
|
19
|
-
uploadMultipleFiles(fileList: FileList): Promise<string[]>;
|
|
20
|
-
/**
|
|
21
|
-
* Example: Download a file
|
|
22
|
-
*/
|
|
23
|
-
downloadFile(key: string): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Example: Get presigned URLs
|
|
26
|
-
*/
|
|
27
|
-
getPresignedUrls(key: string): Promise<{
|
|
28
|
-
upload: string;
|
|
29
|
-
download: string;
|
|
30
|
-
}>;
|
|
31
|
-
/**
|
|
32
|
-
* Example: List files with pagination
|
|
33
|
-
*/
|
|
34
|
-
listFiles(prefix?: string, maxKeys?: number): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Example: File operations (copy, move, delete)
|
|
37
|
-
*/
|
|
38
|
-
performFileOperations(): Promise<void>;
|
|
39
|
-
}
|
|
40
|
-
export declare class ReactNativeFileManagerExample {
|
|
41
|
-
private s3Manager;
|
|
42
|
-
constructor();
|
|
43
|
-
/**
|
|
44
|
-
* Example: Upload a file from React Native
|
|
45
|
-
*/
|
|
46
|
-
uploadFileFromRN(fileInfo: RNFile): Promise<string>;
|
|
47
|
-
/**
|
|
48
|
-
* Example: Upload image with size validation
|
|
49
|
-
*/
|
|
50
|
-
uploadImageWithValidation(fileInfo: RNFile, maxSize?: number): Promise<string>;
|
|
51
|
-
/**
|
|
52
|
-
* Example: Download file to React Native
|
|
53
|
-
*/
|
|
54
|
-
downloadFileToRN(key: string): Promise<Buffer>;
|
|
55
|
-
/**
|
|
56
|
-
* Example: Batch operations
|
|
57
|
-
*/
|
|
58
|
-
performBatchOperations(files: RNFile[]): Promise<void>;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Example usage in a React component
|
|
62
|
-
*/
|
|
63
|
-
export declare const useS3FileManager: () => {
|
|
64
|
-
uploadFile: (file: File | RNFile) => Promise<string>;
|
|
65
|
-
downloadFile: (key: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
|
|
66
|
-
listFiles: (prefix?: string, maxKeys?: number) => Promise<void>;
|
|
67
|
-
getPresignedUrls: (key: string) => Promise<{
|
|
68
|
-
upload: string;
|
|
69
|
-
download: string;
|
|
70
|
-
}>;
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Example: Error handling and retry logic
|
|
74
|
-
*/
|
|
75
|
-
export declare const uploadWithRetry: (s3Manager: S3FileManager | S3FileManagerRN, key: string, file: File | RNFile | Buffer, options?: UploadOptions, maxRetries?: number) => Promise<string>;
|
|
76
|
-
/**
|
|
77
|
-
* Example: File validation utilities
|
|
78
|
-
*/
|
|
79
|
-
export declare const validateFile: (file: File | RNFile, options?: {
|
|
80
|
-
maxSize?: number;
|
|
81
|
-
allowedTypes?: string[];
|
|
82
|
-
allowedExtensions?: string[];
|
|
83
|
-
}) => {
|
|
84
|
-
isValid: boolean;
|
|
85
|
-
errors: string[];
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=s3FileManagerExample.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s3FileManagerExample.d.ts","sourceRoot":"","sources":["../../../src/utils/s3FileManagerExample.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EAGb,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAEf,MAAM,EACP,MAAM,mBAAmB,CAAC;AAc3B,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAgB;;IAMjC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BtE;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBhE;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9C;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAYlF;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,EAAE,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAczE;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB7C;AAMD,qBAAa,6BAA6B;IACxC,OAAO,CAAC,SAAS,CAAkB;;IAMnC;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBzD;;OAEG;IACG,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BrG;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpD;;OAEG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7D;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB;uBAIW,IAAI,GAAG,MAAM;wBAgBZ,MAAM;yBAvLrB,MAAM,YAAgB,MAAM,KAAQ,OAAO,CAAC,IAAI,CAAC;4BAf7C,MAAM,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CA6NnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,aAAa,GAAG,eAAe,EAC1C,KAAK,MAAM,EACX,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,UAAS,aAAkB,EAC3B,aAAY,MAAU,KACrB,OAAO,CAAC,MAAM,CAqChB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,IAAI,GAAG,MAAM,EACnB,UAAS;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,KACL;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CA0BtC,CAAC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
export interface S3Config {
|
|
2
|
-
region: string;
|
|
3
|
-
accessKeyId: string;
|
|
4
|
-
secretAccessKey: string;
|
|
5
|
-
bucketName: string;
|
|
6
|
-
}
|
|
7
|
-
export interface UploadOptions {
|
|
8
|
-
contentType?: string;
|
|
9
|
-
metadata?: Record<string, string>;
|
|
10
|
-
publicRead?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface FileInfo {
|
|
13
|
-
key: string;
|
|
14
|
-
size: number;
|
|
15
|
-
lastModified: Date;
|
|
16
|
-
contentType?: string;
|
|
17
|
-
metadata?: Record<string, string>;
|
|
18
|
-
}
|
|
19
|
-
export interface RNFile {
|
|
20
|
-
uri: string;
|
|
21
|
-
name: string;
|
|
22
|
-
type?: string;
|
|
23
|
-
size?: number;
|
|
24
|
-
}
|
|
25
|
-
export declare class S3FileManagerRN {
|
|
26
|
-
private s3Client;
|
|
27
|
-
private bucketName;
|
|
28
|
-
constructor(config: S3Config);
|
|
29
|
-
/**
|
|
30
|
-
* Upload a file to S3 from React Native
|
|
31
|
-
*/
|
|
32
|
-
uploadFile(key: string, file: RNFile | Buffer | string, options?: UploadOptions): Promise<string>;
|
|
33
|
-
/**
|
|
34
|
-
* Download a file from S3 to React Native
|
|
35
|
-
*/
|
|
36
|
-
downloadFile(key: string): Promise<Buffer>;
|
|
37
|
-
/**
|
|
38
|
-
* Delete a file from S3
|
|
39
|
-
*/
|
|
40
|
-
deleteFile(key: string): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Generate a presigned URL for file upload
|
|
43
|
-
*/
|
|
44
|
-
getPresignedUploadUrl(key: string, contentType: string, expiresIn?: number): Promise<string>;
|
|
45
|
-
/**
|
|
46
|
-
* Generate a presigned URL for file download
|
|
47
|
-
*/
|
|
48
|
-
getPresignedDownloadUrl(key: string, expiresIn?: number): Promise<string>;
|
|
49
|
-
/**
|
|
50
|
-
* List files in a directory
|
|
51
|
-
*/
|
|
52
|
-
listFiles(prefix?: string, maxKeys?: number): Promise<FileInfo[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Check if a file exists
|
|
55
|
-
*/
|
|
56
|
-
fileExists(key: string): Promise<boolean>;
|
|
57
|
-
/**
|
|
58
|
-
* Get file metadata
|
|
59
|
-
*/
|
|
60
|
-
getFileMetadata(key: string): Promise<FileInfo | null>;
|
|
61
|
-
/**
|
|
62
|
-
* Convert React Native file to Buffer
|
|
63
|
-
*/
|
|
64
|
-
private rnFileToBuffer;
|
|
65
|
-
/**
|
|
66
|
-
* Type guard to check if object is RNFile
|
|
67
|
-
*/
|
|
68
|
-
private isRNFile;
|
|
69
|
-
/**
|
|
70
|
-
* Upload multiple files
|
|
71
|
-
*/
|
|
72
|
-
uploadMultipleFiles(files: Array<{
|
|
73
|
-
key: string;
|
|
74
|
-
file: RNFile | Buffer | string;
|
|
75
|
-
options?: UploadOptions;
|
|
76
|
-
}>): Promise<string[]>;
|
|
77
|
-
/**
|
|
78
|
-
* Delete multiple files
|
|
79
|
-
*/
|
|
80
|
-
deleteMultipleFiles(keys: string[]): Promise<void>;
|
|
81
|
-
/**
|
|
82
|
-
* Copy file from one key to another
|
|
83
|
-
*/
|
|
84
|
-
copyFile(sourceKey: string, destinationKey: string): Promise<void>;
|
|
85
|
-
/**
|
|
86
|
-
* Move file (copy + delete)
|
|
87
|
-
*/
|
|
88
|
-
moveFile(sourceKey: string, destinationKey: string): Promise<void>;
|
|
89
|
-
/**
|
|
90
|
-
* Upload image with automatic resizing (placeholder for future implementation)
|
|
91
|
-
*/
|
|
92
|
-
uploadImage(key: string, file: RNFile, options?: UploadOptions & {
|
|
93
|
-
resize?: {
|
|
94
|
-
width?: number;
|
|
95
|
-
height?: number;
|
|
96
|
-
};
|
|
97
|
-
}): Promise<string>;
|
|
98
|
-
/**
|
|
99
|
-
* Get file size from React Native file
|
|
100
|
-
*/
|
|
101
|
-
getFileSize(file: RNFile): Promise<number>;
|
|
102
|
-
}
|
|
103
|
-
export declare function createS3FileManagerRN(config: S3Config): S3FileManagerRN;
|
|
104
|
-
//# sourceMappingURL=s3FileManagerRN.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s3FileManagerRN.d.ts","sourceRoot":"","sources":["../../../src/utils/s3FileManagerRN.ts"],"names":[],"mappings":"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"}
|