mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
if image cannot be downloaded, fall back to oringinal url
This commit is contained in:
@@ -11,6 +11,7 @@ COPY . .
|
|||||||
|
|
||||||
RUN mkdir -p storage
|
RUN mkdir -p storage
|
||||||
RUN rm -rf /app/storage/*
|
RUN rm -rf /app/storage/*
|
||||||
|
ENV NEXT_PUBLIC_ENABLE_FILE_SYNC=true
|
||||||
RUN pnpm run build
|
RUN pnpm run build
|
||||||
|
|
||||||
FROM node:22-alpine AS production
|
FROM node:22-alpine AS production
|
||||||
|
|||||||
2
build.sh
2
build.sh
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
MAJOR_VERSION="2"
|
MAJOR_VERSION="2"
|
||||||
MINOR_VERSION="6"
|
MINOR_VERSION="7"
|
||||||
VERSION="$MAJOR_VERSION.$MINOR_VERSION"
|
VERSION="$MAJOR_VERSION.$MINOR_VERSION"
|
||||||
|
|
||||||
TAG_FLAG=false
|
TAG_FLAG=false
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
canvas_manager:
|
canvas_manager:
|
||||||
image: alexmickelson/canvas_management:2.6
|
image: alexmickelson/canvas_management:2.7
|
||||||
user: "1000:1000"
|
user: "1000:1000"
|
||||||
container_name: canvas-manager-2
|
container_name: canvas-manager-2
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -64,5 +64,3 @@ export async function paginatedRequest<T extends any[]>(request: {
|
|||||||
|
|
||||||
return returnData as T;
|
return returnData as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import FormData from "form-data";
|
|||||||
|
|
||||||
export const downloadUrlToTempDirectory = async (
|
export const downloadUrlToTempDirectory = async (
|
||||||
sourceUrl: string
|
sourceUrl: string
|
||||||
): Promise<string> => {
|
): Promise<{fileName: string, success: boolean}> => {
|
||||||
try {
|
try {
|
||||||
const fileName =
|
const fileName =
|
||||||
path.basename(new URL(sourceUrl).pathname) || `tempfile-${Date.now()}`;
|
path.basename(new URL(sourceUrl).pathname) || `tempfile-${Date.now()}`;
|
||||||
@@ -16,10 +16,10 @@ export const downloadUrlToTempDirectory = async (
|
|||||||
responseType: "arraybuffer",
|
responseType: "arraybuffer",
|
||||||
});
|
});
|
||||||
await fs.writeFile(tempFilePath, response.data);
|
await fs.writeFile(tempFilePath, response.data);
|
||||||
return tempFilePath;
|
return {fileName: tempFilePath, success: true};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error downloading or saving the file:", error);
|
console.log("Error downloading or saving the file:", sourceUrl, error);
|
||||||
throw error;
|
return {fileName: sourceUrl, success: false};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -93,6 +93,7 @@ export const uploadToCanvasPart2 = async ({
|
|||||||
const redirectResponse = await axiosClient.get(redirectUrl);
|
const redirectResponse = await axiosClient.get(redirectUrl);
|
||||||
console.log("redirect response", redirectResponse.data);
|
console.log("redirect response", redirectResponse.data);
|
||||||
}
|
}
|
||||||
|
// console.log("returning from part 2", JSON.stringify(response.data));
|
||||||
return response.data.url;
|
return response.data.url;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error uploading file to Canvas part 2:", error);
|
console.error("Error uploading file to Canvas part 2:", error);
|
||||||
|
|||||||
@@ -18,9 +18,14 @@ export const canvasFileRouter = router({
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
|
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
|
||||||
const localFile = sourceUrl.startsWith("/")
|
const { fileName: localFile, success } = sourceUrl.startsWith("/")
|
||||||
? fileStorageLocation + sourceUrl
|
? { fileName: fileStorageLocation + sourceUrl, success: true }
|
||||||
: await downloadUrlToTempDirectory(sourceUrl);
|
: await downloadUrlToTempDirectory(sourceUrl);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
console.log("could not download file, returning sourceUrl", sourceUrl);
|
||||||
|
return sourceUrl;
|
||||||
|
}
|
||||||
console.log("local temp file", localFile);
|
console.log("local temp file", localFile);
|
||||||
const { upload_url, upload_params } = await uploadToCanvasPart1(
|
const { upload_url, upload_params } = await uploadToCanvasPart1(
|
||||||
localFile,
|
localFile,
|
||||||
@@ -32,7 +37,7 @@ export const canvasFileRouter = router({
|
|||||||
upload_url,
|
upload_url,
|
||||||
upload_params,
|
upload_params,
|
||||||
});
|
});
|
||||||
console.log("canvas url done");
|
console.log("canvas url done", canvasUrl);
|
||||||
return canvasUrl;
|
return canvasUrl;
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user