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