plugin-s3 icon indicating copy to clipboard operation
plugin-s3 copied to clipboard

使用代理地址的S3存储策略上传附件到minio云存储报错

Open carolcoral opened this issue 1 year ago • 55 comments

是什么版本出现了此问题?

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

操作

  1. 使用1panel对minio的api端口进行反向代理
  2. 在halo博客中 附件 - 存储策略 中新增minio作为云存储
  3. 成功添加云存储后上传附件
  • 使用 源站地址 上传成功
  • 使用 代理地址 上传失败
  1. 查看 halo 后台日志返回为 null
  2. 使用1Panel 面板设置 中的 备份帐号 - minio 进行验证发现可以正常使用并上传内容

image image

相关日志输出

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

carolcoral avatar Nov 21 '23 08:11 carolcoral

Hi @carolcoral,建议到 console 下载一下完整的日志文件上传到评论

image

guqing avatar Nov 21 '23 09:11 guqing

不建议直接把密钥发出来,服务器容易受攻击

---原始邮件--- 发件人: @.> 发送时间: 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: @.***>

longjuan avatar Nov 21 '23 09:11 longjuan

不建议直接把密钥发出来,服务器容易受攻击

测试信息,专门用于给你们测试使用

carolcoral avatar Nov 21 '23 09:11 carolcoral

Hi @carolcoral,建议到 console 下载一下完整的日志文件上传到评论

image

已上传 halo-log-2023-11-21 17_28.log

carolcoral avatar Nov 21 '23 09:11 carolcoral

Hi @carolcoral 我看这里日志显示:software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, 403 的 http status code是否是因为没有权限或者 Secret 不正确之类的,我在本地搭建了 minio 并没有发现问题: 我的配置如下: image 并且上传后一切正常 image

guqing avatar Nov 21 '23 09:11 guqing

看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取

longjuan avatar Nov 21 '23 13:11 longjuan

看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取

没有上传成功,里面没有文件是无法读取的

carolcoral avatar Nov 22 '23 01:11 carolcoral

Hi @carolcoral 我看这里日志显示:software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, 403 的 http status code是否是因为没有权限或者 Secret 不正确之类的,我在本地搭建了 minio 并没有发现问题: 我的配置如下: image 并且上传后一切正常 image

今天重新尝试了一下仍然无法正常上传,添加防火墙端口允许全部。

Sceret 相关信息是正确的,因为使用相同的配置信息可以在1Panel中添加minio帐号并成功上传备份。 对于minio多层代理是否存在限制?我的网络结构中 源站地址 代理的本地 Docker 服务,代理地址 是通过1Panel代理的源站地址

carolcoral avatar Nov 22 '23 01:11 carolcoral

看看【插件】->【对象存储(Amazon S3 协议)】->【关联s3文件】能否正常读取

没有上传成功,里面没有文件是无法读取的

手动在后台上传一个文件到策略文件夹下试试

longjuan avatar Nov 22 '23 01:11 longjuan

因为很多issue都是反向代理minio出现的问题,这与插件无关

longjuan avatar Nov 22 '23 01:11 longjuan

因为很多issue都是反向代理minio出现的问题,这与插件无关

@longjuan @guqing 应该是Halo的问题,手动上传文件后,插件可以正常挂载上,插件的S3地址使用的是 代理地址

image image image

carolcoral avatar Nov 22 '23 01:11 carolcoral

执行关联就会出现 403 错误,但是服务端是可用的,我使用了不同IP的3台服务器上的1Panel进行绑定minio及上传均成功

image

carolcoral avatar Nov 22 '23 01:11 carolcoral

切换不同的服务器均可以正常连接和上传(服务器IP均不同) image image

carolcoral avatar Nov 22 '23 01:11 carolcoral

那就对了,之前有人和你一样的错误 https://github.com/halo-dev/plugin-s3/issues/48

longjuan avatar Nov 22 '23 01:11 longjuan

Status Code: 403 问题: 请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。 可以使用 S3Browser 执行上传操作验证账号及权限问题。

longjuan avatar Nov 22 '23 01:11 longjuan

Status Code: 403 问题: 请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。 可以使用 S3Browser 执行上传操作验证账号及权限问题。

读写权限、桶、secret等信息肯定正确的啊。。。我都说了,使用 源站地址 可以成功上传,使用 代理地址 无法上传, 代理地址 就是使用Openresty 反向代理的 源站地址 啊。内部的桶、Access Key、Access Secret、读写权限 肯定都是一样的啊。

carolcoral avatar Nov 22 '23 01:11 carolcoral

那就对了,之前有人和你一样的错误 #48

查看了该ISSUE的相关内容,最后好像也没有解决啊。。不过情况有点类似,使用源站(有端口)可以正常上传,如果反向代理源站地址到 80 端口上则无法正常上传

carolcoral avatar Nov 22 '23 01:11 carolcoral

Status Code: 403 问题: 请检查 Bucket 桶名称、Access Key、Access Secret填写是否正确,并检查账号是否开通该桶的读写权限。 可以使用 S3Browser 执行上传操作验证账号及权限问题。

十分钟前我才又换了一个新IP地址的服务器上的1Panel尝试上传,可以使用 代理地址(api.minio.cnkj.site)正常上传

carolcoral avatar Nov 22 '23 01:11 carolcoral

他们都是反向代理出的问题,现象也是1panel可以上传。但是使用 s3browser 和本插件都有错误。原因出在反向代理,具体什么问题我不清楚。如果真是插件问题的话s3browser是不会上传报错的。

longjuan avatar Nov 22 '23 01:11 longjuan

Hi @carolcoral ,反向代理访问 MinIO 出现问题,可以参考一下:

JohnNiang avatar Nov 22 '23 01:11 JohnNiang

他们都是反向代理出的问题,现象也是1panel可以上传。但是使用 s3browser 和本插件都有错误。原因出在反向代理,具体什么问题我不清楚。如果真是插件问题的话s3browser是不会上传报错的。

那我晚上回去再试试,现在电脑系统是MacOS的无法安装S3Browser

carolcoral avatar Nov 22 '23 01:11 carolcoral

Hi @carolcoral ,反向代理访问 MinIO 出现问题,可以参考一下:

首先感谢。当然,这些方法我都尝试过,除了google相关内容(nginx minio代理无法上传)并且完整的阅读了minio官方对于使用Nginx代理minio的代码块,但是通过修改并不能使我的代理地址在halo中正常工作。

参考官方文档给出的nginx配置进行了修改,然而结果并不是期望的效果。 https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html?ref=docs-redirect

carolcoral avatar Nov 22 '23 02:11 carolcoral

Hi @carolcoral ,如果 Halo 在使用源站可以正常上传文件,而试用代理站点却不能上传,这足以说明 Halo 侧针对源站上传功能是正常的,建议将重点放在反向代理这块儿排查。

不过我会尝试在本地搭建一个 MinIO 和 Nginx 测试能否正常上传。

JohnNiang avatar Nov 22 '23 02:11 JohnNiang

Hi @carolcoral ,如果 Halo 在使用源站可以正常上传文件,而试用代理站点却不能上传,这足以说明 Halo 侧针对源站上传功能是正常的,建议将重点放在反向代理这块儿排查。

不过我会尝试在本地搭建一个 MinIO 和 Nginx 测试能否正常上传。

服务就是本地部署的,只使用一层代理是可以正常访问的,但是目前我用了两层代理。

网络结构:

docker compose部署 MinIO - 本地Nginx代理docker桥接端口(HTTPS) - 1Panel 面板使用Openresty 代理 本地Nginx代理地址

carolcoral avatar Nov 22 '23 05:11 carolcoral

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"

反代理后就会无法上传,其他正常

dysf888 avatar Nov 27 '23 14:11 dysf888

@longjuan @JohnNiang Docker 网桥内http协议没毛病,反代去掉9000走https就有问题了,反代理http协议 还没试过 image image

dysf888 avatar Nov 27 '23 14:11 dysf888

这个问题,我前面已经问过了,已经确定了是1panel的openresty默认配置问题导致的,建议去1panel反馈,我已经在1panel群里反馈过了,但是一直没有得到修复。

cyril-cheng avatar Dec 05 '23 08:12 cyril-cheng

#48 #96

cyril-cheng avatar Dec 05 '23 08:12 cyril-cheng

@JohnNiang @guqing @longjuan 你们内部也向1panel开发组反馈下哇

cyril-cheng avatar Dec 05 '23 08:12 cyril-cheng