feat(medusa): Extend file-service interface + move to core (#1577)

This commit is contained in:
Philip Korsholm authored and GitHub committed 2022-06-04 10:11:17 +02:00
1 parent d7a3218fbe
commit 8e42d37e84
7 files changed
+279 -70

No files matched your search

@@ -1,9 +1,11 @@
import fs from "fs"
import aws from "aws-sdk"
import { parse } from "path"
import { FileService } from "medusa-interfaces"
import { AbstractFileService, FileServiceUploadResult } from "@medusajs/medusa"
import { EntityManager } from "typeorm"
import stream from "stream"
class DigitalOceanService extends FileService {
class DigitalOceanService extends AbstractFileService {
constructor({}, options) {
super()
@@ -16,13 +18,16 @@ class DigitalOceanService extends FileService {
}
upload(file) {
aws.config.setPromisesDependency()
aws.config.update({
accessKeyId: this.accessKeyId_,
secretAccessKey: this.secretAccessKey_,
region: this.region_,
endpoint: this.endpoint_,
})
aws.config.setPromisesDependency(null)
aws.config.update(
{
accessKeyId: this.accessKeyId_,
secretAccessKey: this.secretAccessKey_,
region: this.region_,
endpoint: this.endpoint_,
},
true
)
const parsedFilename = parse(file.originalname)
const fileKey = `${parsedFilename.name}-${Date.now()}${parsedFilename.ext}`
@@ -51,13 +56,16 @@ class DigitalOceanService extends FileService {
}
delete(file) {
aws.config.setPromisesDependency()
aws.config.update({
accessKeyId: this.accessKeyId_,
secretAccessKey: this.secretAccessKey_,
region: this.region_,
endpoint: this.endpoint_,
})
aws.config.setPromisesDependency(null)
aws.config.update(
{
accessKeyId: this.accessKeyId_,
secretAccessKey: this.secretAccessKey_,
region: this.region_,
endpoint: this.endpoint_,
},
true
)
const s3 = new aws.S3()
var params = {
@@ -75,6 +83,18 @@ class DigitalOceanService extends FileService {
})
})
}
async getUploadStreamDescriptor(fileData) {
throw new Error("Method not implemented.")
}
async getDownloadStream(fileData) {
throw new Error("Method not implemented.")
}
async getPresignedDownloadUrl(fileData) {
throw new Error("Method not implemented.")
}
}
export default DigitalOceanService