Skip to content

Commit

Permalink
Add support for @AWS-SDK version 3
Browse files Browse the repository at this point in the history
This should resolve this issue: ZJONSSON#241
I have used a variation of @Sljux's solution to make the interface compatible with the current `stream` interface.
  • Loading branch information
alice-was-here committed Jun 25, 2024
1 parent ea87bf3 commit c0493dd
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
36 changes: 36 additions & 0 deletions lib/Open/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const fs = require('graceful-fs');
const directory = require('./directory');
const Stream = require('stream');
const { GetObjectCommand, HeadObjectCommand } = require('@aws-sdk/client-s3');

module.exports = {
buffer: function(buffer, options) {
Expand Down Expand Up @@ -93,7 +94,42 @@ module.exports = {

return directory(source, options);
},
s3_v3: function (client, params, options) {
const source = {
size: async () => {
const head = await client.send(
new HeadObjectCommand({
Bucket: params.Bucket,
Key: params.Key,
})
);

return head.ContentLength ?? 0;
},
stream: (offset, length) => {
const stream = Stream.PassThrough();
const end = length ? offset + length : "";
client
.send(
new GetObjectCommand({
Bucket: params.Bucket,
Key: params.Key,
Range: `bytes=${offset}-${end}`,
})
)
.then((response) => {
response.Body.pipe(stream);
})
.catch((error) => {
stream.emit("error", error);
});

return stream;
},
};

return directory(source, options);
},
custom: function(source, options) {
return directory(source, options);
}
Expand Down
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
"tap": "^12.7.0",
"temp": ">= 0.4.0 < 1"
},
"peerDependencies": {
"@aws-sdk/client-s3": "^3.0.0"
},
"directories": {
"example": "examples",
"test": "test"
Expand Down

0 comments on commit c0493dd

Please sign in to comment.