plugin-s3
plugin-s3 copied to clipboard
使用代理地址的S3存储策略上传附件到minio云存储报错
是什么版本出现了此问题?
2.10.2
使用的什么数据库?
PostgreSQL
使用的哪种方式运行?
Docker Compose
在线站点地址
https://blog.cnkj.site
发生了什么?
环境
-
Version
- halo: 2.10.2
- plugin-s3: 1.6.3
-
Url
- 源站地址: https://redirect.cnkj.site:19096
- 代理地址: https://api.minio.cnkj.site
-
MinIO 测试信息
- Access Key: SEBlFRMzQ4a0SkQT4l1a
- Secret Key: FrZR9TXRrioMuzd2wUUnBJkvOxmUv6gDTDF5xXa1
- Buckets: test
操作
- 使用1panel对minio的api端口进行反向代理
- 在halo博客中
附件-存储策略中新增minio作为云存储 - 成功添加云存储后上传附件
- 使用
源站地址上传成功 - 使用
代理地址上传失败
- 查看 halo 后台日志返回为
null - 使用1Panel
面板设置中的备份帐号-minio进行验证发现可以正常使用并上传内容
相关日志输出
| date | stream | content |
|---|---|---|
| 2023/11/21 15:57:39 | stdout | |
| 2023/11/21 15:57:39 | stdout | at java.base/java.lang.Thread.run(Unknown Source) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoUsing.subscribe(MonoUsing.java:109) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.Mono.subscribe(Mono.java:4480) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:77) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) ~[reactor-core-3.5.11.jar:3.5.11] |
| 2023/11/21 15:57:39 | stdout | at run.halo.s3os.S3OsAttachmentHandler.lambda$checkFileExistsAndRename$29(S3OsAttachmentHandler.java:392) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.services.s3.DefaultS3Client.headObject(DefaultS3Client.java:5438) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:179) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:82) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:171) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:193) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:31) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:48) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:36) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:50) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:73) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:30) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:40) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:266) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:95) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:108) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | Original Stack Trace: |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ HTTP POST "/apis/api.console.halo.run/v1alpha1/attachments/upload" [ExceptionHandlingWebHandler] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordAuthenticator [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ run.halo.app.security.authentication.login.DelegatingLogoutPageGeneratingWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordLogoutHandler [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | *__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter [DefaultWebFilterChain] |
| 2023/11/21 15:57:39 | stdout | Error has been observed at the following site(s): |
| 2023/11/21 15:57:39 | stdout | Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: |
| 2023/11/21 15:57:39 | stdout | at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156) ~[na:na] |
| 2023/11/21 15:57:39 | stdout | software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: 1799945C92D122FB, Extended Request ID: 7987905dee74cdeb212432486a178e511309594cee7cb75f892cd53e35f09ea4) |
| 2023/11/21 15:57:39 | stdout | |
| 2023/11/21 15:57:39 | stdout | 2023-11-21T15:57:39.672+08:00 ERROR 7 --- [ndedElastic-508] a.w.r.e.AbstractErrorWebExceptionHandler : [65e55a31-22492] 500 Server Error for HTTP POST "/apis/api.console.halo.run/v1alpha1/attachments/upload" |
附加信息
No response
Hi @carolcoral,建议到 console 下载一下完整的日志文件上传到评论
不建议直接把密钥发出来,服务器容易受攻击
---原始邮件--- 发件人: @.> 发送时间: 2023年11月21日(周二) 下午5:02 收件人: @.>; 抄送: @.***>; 主题: [halo-dev/plugin-s3] 使用代理地址的S3存储策略上传附件到minio云存储报错 (Issue #99)
是什么版本出现了此问题?
2.10.2
使用的什么数据库?
PostgreSQL
使用的哪种方式运行?
Docker Compose
在线站点地址
https://blog.cnkj.site
发生了什么?
环境
Version
halo: 2.10.2
plugin-s3: 1.6.3
Url
源站地址: https://redirect.cnkj.site:19096
代理地址: https://api.minio.cnkj.site
MinIO 测试信息
Access Key: SEBlFRMzQ4a0SkQT4l1a
Secret Key: FrZR9TXRrioMuzd2wUUnBJkvOxmUv6gDTDF5xXa1
Buckets: test
操作
使用1panel对minio的api端口进行反向代理
在halo博客中 附件 - 存储策略 中新增minio作为云存储
成功添加云存储后上传附件
使用 源站地址 上传成功
使用 代理地址 上传失败
查看 halo 后台日志返回为 null
使用1Panel 面板设置 中的 备份帐号 - minio 进行验证发现可以正常使用并上传内容
相关日志输出 datestreamcontent 2023/11/21 15:57:39stdout 2023/11/21 15:57:39stdout at java.base/java.lang.Thread.run(Unknown Source) ~[na:na] 2023/11/21 15:57:39stdout at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na] 2023/11/21 15:57:39stdout at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na] 2023/11/21 15:57:39stdout at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na] 2023/11/21 15:57:39stdout at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na] 2023/11/21 15:57:39stdout at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoUsing.subscribe(MonoUsing.java:109) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.Mono.subscribe(Mono.java:4480) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:77) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) ~[reactor-core-3.5.11.jar:3.5.11] 2023/11/21 15:57:39stdout at run.halo.s3os.S3OsAttachmentHandler.lambda$checkFileExistsAndRename$29(S3OsAttachmentHandler.java:392) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.services.s3.DefaultS3Client.headObject(DefaultS3Client.java:5438) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:179) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:82) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:171) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:193) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:31) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:48) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:36) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:50) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:73) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:30) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:40) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:266) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:95) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:108) ~[na:na] 2023/11/21 15:57:39stdout at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156) ~[na:na] 2023/11/21 15:57:39stdoutOriginal Stack Trace: 2023/11/21 15:57:39stdout *__checkpoint ⇢ HTTP POST "/apis/api.console.halo.run/v1alpha1/attachments/upload" [ExceptionHandlingWebHandler] 2023/11/21 15:57:39stdout *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordAuthenticator [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ run.halo.app.security.authentication.login.DelegatingLogoutPageGeneratingWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordLogoutHandler [DefaultWebFilterChain] 2023/11/21 15:57:39stdout *__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter [DefaultWebFilterChain] 2023/11/21 15:57:39stdoutError has been observed at the following site(s): 2023/11/21 15:57:39stdout Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 2023/11/21 15:57:39stdout at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156) ~[na:na] 2023/11/21 15:57:39stdoutsoftware.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: 1799945C92D122FB, Extended Request ID: 7987905dee74cdeb212432486a178e511309594cee7cb75f892cd53e35f09ea4) 2023/11/21 15:57:39stdout 2023/11/21 15:57:39stdout2023-11-21T15:57:39.672+08:00 ERROR 7 --- [ndedElastic-508] a.w.r.e.AbstractErrorWebExceptionHandler : [65e55a31-22492] 500 Server Error for HTTP POST "/apis/api.console.halo.run/v1alpha1/attachments/upload"
附加信息
No response
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
不建议直接把密钥发出来,服务器容易受攻击
测试信息,专门用于给你们测试使用
Hi @carolcoral,建议到 console 下载一下完整的日志文件上传到评论
已上传 halo-log-2023-11-21 17_28.log
Hi @carolcoral 我看这里日志显示:software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403,
403 的 http status code是否是因为没有权限或者 Secret 不正确之类的,我在本地搭建了 minio 并没有发现问题:
我的配置如下:
并且上传后一切正常
看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取
看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取
没有上传成功,里面没有文件是无法读取的
Hi @carolcoral 我看这里日志显示:
software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403,403 的 http status code是否是因为没有权限或者 Secret 不正确之类的,我在本地搭建了 minio 并没有发现问题: 我的配置如下:并且上传后一切正常
今天重新尝试了一下仍然无法正常上传,添加防火墙端口允许全部。
Sceret 相关信息是正确的,因为使用相同的配置信息可以在1Panel中添加minio帐号并成功上传备份。
对于minio多层代理是否存在限制?我的网络结构中 源站地址 代理的本地 Docker 服务,代理地址 是通过1Panel代理的源站地址。
看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取
没有上传成功,里面没有文件是无法读取的
手动在后台上传一个文件到策略文件夹下试试
因为很多issue都是反向代理minio出现的问题,这与插件无关
因为很多issue都是反向代理minio出现的问题,这与插件无关
@longjuan @guqing 应该是Halo的问题,手动上传文件后,插件可以正常挂载上,插件的S3地址使用的是 代理地址
执行关联就会出现 403 错误,但是服务端是可用的,我使用了不同IP的3台服务器上的1Panel进行绑定minio及上传均成功
切换不同的服务器均可以正常连接和上传(服务器IP均不同)
那就对了,之前有人和你一样的错误 https://github.com/halo-dev/plugin-s3/issues/48
Status Code: 403 问题:
请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。
可以使用 S3Browser 执行上传操作验证账号及权限问题。
Status Code: 403问题: 请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。 可以使用 S3Browser 执行上传操作验证账号及权限问题。
读写权限、桶、secret等信息肯定正确的啊。。。我都说了,使用 源站地址 可以成功上传,使用 代理地址 无法上传, 代理地址 就是使用Openresty 反向代理的 源站地址 啊。内部的桶、Access Key、Access Secret、读写权限 肯定都是一样的啊。
那就对了,之前有人和你一样的错误 #48
查看了该ISSUE的相关内容,最后好像也没有解决啊。。不过情况有点类似,使用源站(有端口)可以正常上传,如果反向代理源站地址到 80 端口上则无法正常上传
Status Code: 403问题: 请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。 可以使用 S3Browser 执行上传操作验证账号及权限问题。
十分钟前我才又换了一个新IP地址的服务器上的1Panel尝试上传,可以使用 代理地址(api.minio.cnkj.site)正常上传
他们都是反向代理出的问题,现象也是1panel可以上传。但是使用 s3browser 和本插件都有错误。原因出在反向代理,具体什么问题我不清楚。如果真是插件问题的话s3browser是不会上传报错的。
Hi @carolcoral ,反向代理访问 MinIO 出现问题,可以参考一下:
- https://github.com/minio/minio/issues/7736
- https://stackoverflow.com/questions/62752413/minio-with-nginx-and-presigned-url?rq=2
他们都是反向代理出的问题,现象也是1panel可以上传。但是使用 s3browser 和本插件都有错误。原因出在反向代理,具体什么问题我不清楚。如果真是插件问题的话s3browser是不会上传报错的。
那我晚上回去再试试,现在电脑系统是MacOS的无法安装S3Browser
Hi @carolcoral ,反向代理访问 MinIO 出现问题,可以参考一下:
- Minio returning 403 when using a reverse proxy minio/minio#7736
- https://stackoverflow.com/questions/62752413/minio-with-nginx-and-presigned-url?rq=2
首先感谢。当然,这些方法我都尝试过,除了google相关内容(nginx minio代理无法上传)并且完整的阅读了minio官方对于使用Nginx代理minio的代码块,但是通过修改并不能使我的代理地址在halo中正常工作。
参考官方文档给出的nginx配置进行了修改,然而结果并不是期望的效果。 https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html?ref=docs-redirect
Hi @carolcoral ,如果 Halo 在使用源站可以正常上传文件,而试用代理站点却不能上传,这足以说明 Halo 侧针对源站上传功能是正常的,建议将重点放在反向代理这块儿排查。
不过我会尝试在本地搭建一个 MinIO 和 Nginx 测试能否正常上传。
Hi @carolcoral ,如果 Halo 在使用源站可以正常上传文件,而试用代理站点却不能上传,这足以说明 Halo 侧针对源站上传功能是正常的,建议将重点放在反向代理这块儿排查。
不过我会尝试在本地搭建一个 MinIO 和 Nginx 测试能否正常上传。
服务就是本地部署的,只使用一层代理是可以正常访问的,但是目前我用了两层代理。
网络结构:
docker compose部署 MinIO - 本地Nginx代理docker桥接端口(HTTPS) - 1Panel 面板使用Openresty 代理 本地Nginx代理地址
Hi @carolcoral ,如果 Halo 在使用源站可以正常上传文件,而试用代理站点却不能上传,这足以说明 Halo 侧针对源站上传功能是正常的,建议将重点放在反向代理这块儿排查。
不过我会尝试在本地搭建一个 MinIO 和 Nginx 测试能否正常上传。
nginx 日志
[27/Nov/2023:15:19:07 +0100] "HEAD /solitude/hfs.exe HTTP/1.1" 403 0 "-" "aws-sdk-java/2.19.8 Linux/5.10.0-24-amd64 OpenJDK_64-Bit_Server_VM/17.0.9+9 Java/17.0.9 vendor/Eclipse_Adoptium io/sync http/Apache cfg/retry-mode/legacy"
反代理后就会无法上传,其他正常
@longjuan @JohnNiang Docker 网桥内http协议没毛病,反代去掉9000走https就有问题了,反代理http协议 还没试过
这个问题,我前面已经问过了,已经确定了是1panel的openresty默认配置问题导致的,建议去1panel反馈,我已经在1panel群里反馈过了,但是一直没有得到修复。
#48 #96
@JohnNiang @guqing @longjuan 你们内部也向1panel开发组反馈下哇
%0Antent.com/38999863/284522093-6b146d9b-98cb-404d-8808-91c3b99d3b8e.png)
并且上传后一切正常 