mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 16:05:09 +00:00
fix pipelines via changing to service (#3358)
# Description of Changes Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
parent
de9e3edf5c
commit
def0552f24
@ -29,7 +29,7 @@ ext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "stirling.software"
|
group = "stirling.software"
|
||||||
version = "0.45.5"
|
version = "0.45.6"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
// 17 is lowest but we support and recommend 21
|
// 17 is lowest but we support and recommend 21
|
||||||
|
@ -109,33 +109,6 @@ public class AppConfig {
|
|||||||
return (rateLimit != null) ? Boolean.valueOf(rateLimit) : false;
|
return (rateLimit != null) ? Boolean.valueOf(rateLimit) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "uploadLimit")
|
|
||||||
public long uploadLimit() {
|
|
||||||
String maxUploadSize =
|
|
||||||
applicationProperties.getSystem().getFileUploadLimit() != null
|
|
||||||
? applicationProperties.getSystem().getFileUploadLimit()
|
|
||||||
: "";
|
|
||||||
|
|
||||||
if (maxUploadSize.isEmpty()) {
|
|
||||||
return 0;
|
|
||||||
} else if (!new Regex("^[1-9][0-9]{0,2}[KMGkmg][Bb]$").matches(maxUploadSize)) {
|
|
||||||
log.error(
|
|
||||||
"Invalid maxUploadSize format. Expected format: [1-9][0-9]{0,2}[KMGkmg][Bb], but got: {}",
|
|
||||||
maxUploadSize);
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
String unit = maxUploadSize.replaceAll("[1-9][0-9]{0,2}", "").toUpperCase();
|
|
||||||
String number = maxUploadSize.replaceAll("[KMGkmg][Bb]", "");
|
|
||||||
long size = Long.parseLong(number);
|
|
||||||
return switch (unit) {
|
|
||||||
case "KB" -> size * 1024;
|
|
||||||
case "MB" -> size * 1024 * 1024;
|
|
||||||
case "GB" -> size * 1024 * 1024 * 1024;
|
|
||||||
default -> 0;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "RunningInDocker")
|
@Bean(name = "RunningInDocker")
|
||||||
public boolean runningInDocker() {
|
public boolean runningInDocker() {
|
||||||
return Files.exists(Paths.get("/.dockerenv"));
|
return Files.exists(Paths.get("/.dockerenv"));
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
package stirling.software.SPDF.controller.web;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
@ControllerAdvice
|
|
||||||
public class GlobalUploadLimitWebController {
|
|
||||||
|
|
||||||
@Autowired() private long uploadLimit;
|
|
||||||
|
|
||||||
@ModelAttribute("uploadLimit")
|
|
||||||
public long populateUploadLimit() {
|
|
||||||
return uploadLimit;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ModelAttribute("uploadLimitReadable")
|
|
||||||
public String populateReadableLimit() {
|
|
||||||
return humanReadableByteCount(uploadLimit);
|
|
||||||
}
|
|
||||||
|
|
||||||
private String humanReadableByteCount(long bytes) {
|
|
||||||
if (bytes < 1024) return bytes + " B";
|
|
||||||
int exp = (int) (Math.log(bytes) / Math.log(1024));
|
|
||||||
String pre = "KMGTPE".charAt(exp - 1) + "B";
|
|
||||||
return String.format("%.1f %s", bytes / Math.pow(1024, exp), pre);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,55 @@
|
|||||||
|
package stirling.software.SPDF.controller.web;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import stirling.software.SPDF.model.ApplicationProperties;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class UploadLimitService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationProperties applicationProperties;
|
||||||
|
|
||||||
|
public long getUploadLimit() {
|
||||||
|
String maxUploadSize =
|
||||||
|
applicationProperties.getSystem().getFileUploadLimit() != null
|
||||||
|
? applicationProperties.getSystem().getFileUploadLimit()
|
||||||
|
: "";
|
||||||
|
|
||||||
|
if (maxUploadSize.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
} else if (!Pattern.compile("^[1-9][0-9]{0,2}[KMGkmg][Bb]$").matcher(maxUploadSize).matches()) {
|
||||||
|
log.error(
|
||||||
|
"Invalid maxUploadSize format. Expected format: [1-9][0-9]{0,2}[KMGkmg][Bb], but got: {}",
|
||||||
|
maxUploadSize);
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
String unit = maxUploadSize.replaceAll("[1-9][0-9]{0,2}", "").toUpperCase();
|
||||||
|
String number = maxUploadSize.replaceAll("[KMGkmg][Bb]", "");
|
||||||
|
long size = Long.parseLong(number);
|
||||||
|
return switch (unit) {
|
||||||
|
case "KB" -> size * 1024;
|
||||||
|
case "MB" -> size * 1024 * 1024;
|
||||||
|
case "GB" -> size * 1024 * 1024 * 1024;
|
||||||
|
default -> 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: why do this server side not client?
|
||||||
|
public String getReadableUploadLimit() {
|
||||||
|
return humanReadableByteCount(getUploadLimit());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String humanReadableByteCount(long bytes) {
|
||||||
|
if (bytes < 1024) return bytes + " B";
|
||||||
|
int exp = (int) (Math.log(bytes) / Math.log(1024));
|
||||||
|
String pre = "KMGTPE".charAt(exp - 1) + "B";
|
||||||
|
return String.format("%.1f %s", bytes / Math.pow(1024, exp), pre);
|
||||||
|
}
|
||||||
|
}
|
@ -240,8 +240,8 @@
|
|||||||
window.stirlingPDF.sessionExpired = /*[[#{session.expired}]]*/ '';
|
window.stirlingPDF.sessionExpired = /*[[#{session.expired}]]*/ '';
|
||||||
window.stirlingPDF.refreshPage = /*[[#{session.refreshPage}]]*/ 'Refresh Page';
|
window.stirlingPDF.refreshPage = /*[[#{session.refreshPage}]]*/ 'Refresh Page';
|
||||||
window.stirlingPDF.error = /*[[#{error}]]*/ "Error";
|
window.stirlingPDF.error = /*[[#{error}]]*/ "Error";
|
||||||
window.stirlingPDF.uploadLimit = /*[[${uploadLimit}]]*/ 0;
|
window.stirlingPDF.uploadLimitReadable = /*[[${@uploadLimitService.getReadableUploadLimit()}]]*/ 'Unlimited';
|
||||||
window.stirlingPDF.uploadLimitReadable = /*[[${uploadLimitReadable}]]*/ 'Unlimited';
|
window.stirlingPDF.uploadLimit = /*[[${@uploadLimitService.getUploadLimit()}]]*/ 0;
|
||||||
window.stirlingPDF.uploadLimitExceededSingular = /*[[#{uploadLimitExceededSingular}]]*/ 'is too large. Maximum allowed size is';
|
window.stirlingPDF.uploadLimitExceededSingular = /*[[#{uploadLimitExceededSingular}]]*/ 'is too large. Maximum allowed size is';
|
||||||
window.stirlingPDF.uploadLimitExceededPlural = /*[[#{uploadLimitExceededPlural}]]*/ 'are too large. Maximum allowed size is';
|
window.stirlingPDF.uploadLimitExceededPlural = /*[[#{uploadLimitExceededPlural}]]*/ 'are too large. Maximum allowed size is';
|
||||||
})();
|
})();
|
||||||
@ -292,10 +292,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="selected-files flex-wrap"></div>
|
<div class="selected-files flex-wrap"></div>
|
||||||
<div class="text-muted small mt-0 text-end w-100" th:if="${uploadLimit != 0}">
|
<div class="text-muted small mt-0 text-end w-100" th:if="${@uploadLimitService.getUploadLimit() != 0}">
|
||||||
<span th:text="#{uploadLimit}">Maximum file size: </span>
|
<span th:text="#{uploadLimit}">Maximum file size: </span>
|
||||||
<span th:text="${uploadLimitReadable}"></span>
|
<span th:text="${@uploadLimitService.getReadableUploadLimit()}"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="progressBarContainer" style="display: none; position: relative;">
|
<div class="progressBarContainer" style="display: none; position: relative;">
|
||||||
<div class="progress" style="height: 1rem;">
|
<div class="progress" style="height: 1rem;">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user