zerobucket 0.10.0 → 0.10.1
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/README.md +11 -7
- package/dist/bin.js +8 -6
- package/dist/index.cjs +8 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -150,17 +150,17 @@ INSERT INTO zerobucket_images
|
|
|
150
150
|
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
151
151
|
RETURNING id;`;
|
|
152
152
|
var SELECT_FULL = `
|
|
153
|
-
SELECT id, data, mime_type, original_filename, size_bytes, width, height,
|
|
153
|
+
SELECT id, encode(data, 'base64') AS data_b64, mime_type, original_filename, size_bytes, width, height,
|
|
154
154
|
checksum_sha256, storage_backend, object_storage_bucket, object_storage_key
|
|
155
155
|
FROM zerobucket_images WHERE id = $1;`;
|
|
156
156
|
var SELECT_MANY = `
|
|
157
|
-
SELECT id, data, mime_type, original_filename, size_bytes, width, height,
|
|
157
|
+
SELECT id, encode(data, 'base64') AS data_b64, mime_type, original_filename, size_bytes, width, height,
|
|
158
158
|
checksum_sha256, storage_backend, object_storage_bucket, object_storage_key
|
|
159
159
|
FROM zerobucket_images WHERE id = ANY($1::uuid[]);`;
|
|
160
160
|
var SELECT_METADATA = `
|
|
161
161
|
SELECT id, mime_type, original_filename, size_bytes, width, height, checksum_sha256
|
|
162
162
|
FROM zerobucket_images WHERE id = $1;`;
|
|
163
|
-
var SELECT_CHUNK = `SELECT substring(data FROM $1::int FOR $2::int) AS chunk FROM zerobucket_images WHERE id = $3;`;
|
|
163
|
+
var SELECT_CHUNK = `SELECT encode(substring(data FROM $1::int FOR $2::int), 'base64') AS chunk FROM zerobucket_images WHERE id = $3;`;
|
|
164
164
|
var SELECT_STREAM_INFO = `SELECT size_bytes, storage_backend, object_storage_key FROM zerobucket_images WHERE id = $1;`;
|
|
165
165
|
var DELETE_RETURNING = `DELETE FROM zerobucket_images WHERE id = $1 RETURNING storage_backend, object_storage_key;`;
|
|
166
166
|
var DELETE_MANY = `DELETE FROM zerobucket_images WHERE id = ANY($1::uuid[]) RETURNING id, storage_backend, object_storage_key;`;
|
|
@@ -193,7 +193,7 @@ INSERT INTO zerobucket_blobs (checksum_sha256, data, mime_type, size_bytes, widt
|
|
|
193
193
|
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
194
194
|
ON CONFLICT (checksum_sha256) DO UPDATE SET ref_count = zerobucket_blobs.ref_count + EXCLUDED.ref_count;`;
|
|
195
195
|
var D_INSERT_REF = `INSERT INTO zerobucket_image_refs (checksum_sha256, original_filename) VALUES ($1, $2) RETURNING id;`;
|
|
196
|
-
var D_COLS = `r.id, b.data, b.mime_type, r.original_filename, b.size_bytes, b.width, b.height, r.checksum_sha256,
|
|
196
|
+
var D_COLS = `r.id, encode(b.data, 'base64') AS data_b64, b.mime_type, r.original_filename, b.size_bytes, b.width, b.height, r.checksum_sha256,
|
|
197
197
|
'postgres'::text AS storage_backend, NULL::text AS object_storage_bucket, NULL::text AS object_storage_key`;
|
|
198
198
|
var D_FROM = `FROM zerobucket_image_refs r JOIN zerobucket_blobs b ON r.checksum_sha256 = b.checksum_sha256`;
|
|
199
199
|
var D_DELETE_REF = `DELETE FROM zerobucket_image_refs WHERE id = $1 RETURNING checksum_sha256;`;
|
|
@@ -215,7 +215,7 @@ var DEDUP_SQL = {
|
|
|
215
215
|
selectMany: `SELECT ${D_COLS} ${D_FROM} WHERE r.id = ANY($1::uuid[]);`,
|
|
216
216
|
selectMetadata: `SELECT r.id, b.mime_type, r.original_filename, b.size_bytes, b.width, b.height, r.checksum_sha256 ${D_FROM} WHERE r.id = $1;`,
|
|
217
217
|
selectStreamInfo: `SELECT b.size_bytes, 'postgres'::text AS storage_backend, NULL::text AS object_storage_key ${D_FROM} WHERE r.id = $1;`,
|
|
218
|
-
selectChunk: `SELECT substring(b.data FROM $1::int FOR $2::int) AS chunk ${D_FROM} WHERE r.id = $3;`,
|
|
218
|
+
selectChunk: `SELECT encode(substring(b.data FROM $1::int FOR $2::int), 'base64') AS chunk ${D_FROM} WHERE r.id = $3;`,
|
|
219
219
|
exists: `SELECT 1 FROM zerobucket_image_refs WHERE id = $1;`
|
|
220
220
|
};
|
|
221
221
|
var RETRYABLE_SQLSTATES = /* @__PURE__ */ new Set([
|
|
@@ -672,7 +672,7 @@ var PostgresBackend = class {
|
|
|
672
672
|
`Image ${JSON.stringify(id)} was deleted while streaming (delivered ${delivered} of ${wanted} bytes). Pass connection with your own open transaction if you need a consistent read across concurrent writers.`
|
|
673
673
|
);
|
|
674
674
|
}
|
|
675
|
-
const chunk = row.chunk;
|
|
675
|
+
const chunk = row.chunk == null ? null : Buffer.from(row.chunk, "base64");
|
|
676
676
|
if (!chunk || chunk.length === 0) {
|
|
677
677
|
throw new StorageError(
|
|
678
678
|
`Image ${JSON.stringify(id)} ended early while streaming (delivered ${delivered} of ${wanted} bytes).`
|
|
@@ -996,6 +996,8 @@ var PostgresBackend = class {
|
|
|
996
996
|
}
|
|
997
997
|
// ---- helpers ---------------------------------------------------------
|
|
998
998
|
hydrate(row, id) {
|
|
999
|
+
row.data = row.data_b64 == null ? null : Buffer.from(row.data_b64, "base64");
|
|
1000
|
+
delete row.data_b64;
|
|
999
1001
|
return hydrateRow(row, id, this.opts.objectStorage);
|
|
1000
1002
|
}
|
|
1001
1003
|
/**
|