fix: download url
This commit is contained in:
parent
d54ed35755
commit
62f8ba2c70
@ -10,6 +10,8 @@ SPACES_REGION="nyc3"
|
|||||||
SPACES_BUCKET="comfyui-deploy"
|
SPACES_BUCKET="comfyui-deploy"
|
||||||
SPACES_KEY="xyz"
|
SPACES_KEY="xyz"
|
||||||
SPACES_SECRET="aaa"
|
SPACES_SECRET="aaa"
|
||||||
|
SPACES_CDN_DONT_INCLUDE_BUCKET="false"
|
||||||
|
SPACES_CDN_FORCE_PATH_STYLE="true"
|
||||||
|
|
||||||
JWT_SECRET="openssl rand -hex 32"
|
JWT_SECRET="openssl rand -hex 32"
|
||||||
PLAUSIBLE_DOMAIN=
|
PLAUSIBLE_DOMAIN=
|
27
web/src/components/DownloadButton.tsx
Normal file
27
web/src/components/DownloadButton.tsx
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { Button } from "@/components/ui/button";
|
||||||
|
import { Download } from "lucide-react";
|
||||||
|
|
||||||
|
export function DownloadButton(props: { href: string; filename: string }) {
|
||||||
|
return (
|
||||||
|
<Button
|
||||||
|
className="gap-2"
|
||||||
|
onClick={async () => {
|
||||||
|
const url = props.href;
|
||||||
|
|
||||||
|
console.log(url);
|
||||||
|
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.href = url;
|
||||||
|
a.download = props.filename;
|
||||||
|
a.target = "_blank"; // Add this line
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
document.body.removeChild(a);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Download <Download size={14} />
|
||||||
|
</Button>
|
||||||
|
);
|
||||||
|
}
|
@ -1,40 +1,22 @@
|
|||||||
"use client";
|
import { DownloadButton } from "./DownloadButton";
|
||||||
|
|
||||||
import { Button } from "@/components/ui/button";
|
|
||||||
import { getFileDownloadUrl } from "@/server/getFileDownloadUrl";
|
import { getFileDownloadUrl } from "@/server/getFileDownloadUrl";
|
||||||
import { Download } from "lucide-react";
|
|
||||||
|
|
||||||
export function OutputRender(props: { run_id: string; filename: string }) {
|
export async function OutputRender(props: {
|
||||||
|
run_id: string;
|
||||||
|
filename: string;
|
||||||
|
}) {
|
||||||
if (props.filename.endsWith(".png")) {
|
if (props.filename.endsWith(".png")) {
|
||||||
return (
|
const url = await getFileDownloadUrl(
|
||||||
<img
|
`outputs/runs/${props.run_id}/${props.filename}`
|
||||||
className="max-w-[200px]"
|
|
||||||
alt={props.filename}
|
|
||||||
src={`/api/view?file=${encodeURIComponent(
|
|
||||||
`outputs/runs/${props.run_id}/${props.filename}`
|
|
||||||
)}`}
|
|
||||||
/>
|
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<Button
|
|
||||||
className="gap-2"
|
|
||||||
onClick={async () => {
|
|
||||||
const url = await getFileDownloadUrl(
|
|
||||||
`outputs/runs/${props.run_id}/${props.filename}`
|
|
||||||
);
|
|
||||||
|
|
||||||
const a = document.createElement("a");
|
return <img className="max-w-[200px]" alt={props.filename} src={url} />;
|
||||||
a.href = url;
|
} else {
|
||||||
a.download = props.filename;
|
const url = await getFileDownloadUrl(
|
||||||
a.target = "_blank"; // Add this line
|
`outputs/runs/${props.run_id}/${props.filename}`
|
||||||
document.body.appendChild(a);
|
|
||||||
a.click();
|
|
||||||
document.body.removeChild(a);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Download <Download size={14} />
|
|
||||||
</Button>
|
|
||||||
);
|
);
|
||||||
|
console.log(url);
|
||||||
|
|
||||||
|
return <DownloadButton filename={props.filename} href={url} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,10 @@ export function replaceCDNUrl(url: string) {
|
|||||||
);
|
);
|
||||||
// When using digital ocean, we need to use the bucket name in the URL
|
// When using digital ocean, we need to use the bucket name in the URL
|
||||||
} else if (process.env.SPACES_CDN_FORCE_PATH_STYLE === "false") {
|
} else if (process.env.SPACES_CDN_FORCE_PATH_STYLE === "false") {
|
||||||
|
const cdnUrl = new URL(process.env.SPACES_ENDPOINT_CDN!);
|
||||||
url = url.replace(
|
url = url.replace(
|
||||||
`${process.env.SPACES_ENDPOINT}/${process.env.SPACES_BUCKET}`,
|
`${process.env.SPACES_ENDPOINT}/${process.env.SPACES_BUCKET}`,
|
||||||
`${process.env.SPACES_BUCKET}.${process.env.SPACES_ENDPOINT_CDN}}`
|
`${cdnUrl.protocol}//${process.env.SPACES_BUCKET}.${cdnUrl.host}`
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
url = url.replace(
|
url = url.replace(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user