Fix callback URL rewrite
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m28s

This commit is contained in:
Elijah 2026-05-24 11:39:21 -07:00
parent 360cb5275a
commit 3e19cae267
2 changed files with 11 additions and 3 deletions

View file

@ -6,6 +6,7 @@ import (
"net/http"
"os"
"path/filepath"
"strings"
"git.elijahkuntz.com/Elijah/drive/config"
"git.elijahkuntz.com/Elijah/drive/middleware"
@ -48,8 +49,15 @@ func (h *OnlyOfficeHandler) Callback(c *fiber.Ctx) error {
return c.Status(400).JSON(fiber.Map{"error": "url required"})
}
// If the server cannot resolve the public URL due to hairpin NAT,
// we can rewrite it to use the internal Docker IP
downloadUrl := req.Url
if strings.HasPrefix(downloadUrl, "https://office.elijahkuntz.com") {
downloadUrl = strings.Replace(downloadUrl, "https://office.elijahkuntz.com", "http://192.168.50.81:8084", 1)
}
// Download modified file from Document Server
resp, err := http.Get(req.Url)
resp, err := http.Get(downloadUrl)
if err != nil {
return c.Status(500).JSON(fiber.Map{"error": "failed to download file"})
}

View file

@ -473,7 +473,7 @@ class ApiClient {
async createOnlyOfficeFile(type: 'word' | 'slide') {
const res = await this.request('/api/onlyoffice/create', {
method: 'POST',
body: JSON.stringify({ type })
body: { type }
});
return res.json();
}
@ -481,7 +481,7 @@ class ApiClient {
async signOnlyOfficeConfig(config: any) {
const res = await this.request('/api/onlyoffice/sign', {
method: 'POST',
body: JSON.stringify(config)
body: config
});
return res.json();
}