无法在Amazon S3存储桶上保存媒体

2020-09-19 14:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们 我目前正在为我们的媒体...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们

我目前正在为我们的媒体评估Amazon S3存储桶解决方案。 每次我要保存媒体时,都会出现此错误,并且该媒体将不会持久保存。 奇怪的是,上传到存储桶的工作正常。

有什么想法我在做什么错吗?

HMC错误: hmc错误

我的配置:

 #Amazon S3存储桶
  #放入S3策略的Spring bean ID,该ID使逻辑负责hybris和Amazon S3之间的通信
  media.folder.s3medias.storage.strategy = s3MediaStorageStrategy
  media.folder.s3medias.url.strategy = s3MediaUrlStrategy
 
  #设置URL有效期为5分钟
  media.folder.s3medias.url.signed.validFor = 5
 
  media.folder.s3medias.accessKeyId = XXX
  media.folder.s3medias.secretAccessKey = XXX/XXX
 
  media.folder.s3medias.bucketId = testmspmediabucket
 
  media.globalSettings.s3MediaStorageStrategy.cleanOnInit = true


  

亚马逊

已保存媒体的存储桶: amazon s3

错误:

 原因:de.hybris.platform.media.exceptions.MediaStoreException:com.amazonaws.services.s3.model.AmazonS3Exception:Bad Request(Service:Amazon S3; Status Code:400; Error Code:400 错误的请求;请求ID:dfggsdf),S3扩展请求ID:sdfg/sdfg + sdfg/sdfg
       在de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:149)

  

完整错误:

我认为警告可以忽略。

  WARN [hybrisHTTP32] [AmazonS3Client]尝试通过AWS V4身份验证将请求重新发送到testmspmediabucket.s3-external-1.amazonaws.com。 为避免将来出现此警告,请使用特定于区域的终结点来访问需要V4签名的区域中的存储桶。
 
  ==================================================  =====================
  MasterServlet中的异常
  时间:2018年1月25日星期四21:00:39
  查询字符串:WID = MC0x479&MC0x478_file =%2FProjects%2Fmicrospot-B2C%2Fhybris%2Ftemp%2Fhybris%2Fhmc_upload_file1801757625646233598.tmp&MC0x478_filename = c74461ae2a9917a2482ac7b53f195b3c6e2fdd59e778c673256fb29d1b07f181.jpg&取消=假tempfilename = upload_MC0x478.tmp&MC0x478_保存=真
  de.hybris.platform.jalo.JaloSystemException:com.amazonaws.services.s3.model.AmazonS3Exception:错误的请求(服务:Amazon S3;状态代码:400;错误代码:400错误的请求;请求ID:fsgdfg),S3扩展 请求ID:sdfg/KHcvHkfnCuya7DDakAX + sdfg/sdfg = [HY--1]
      在de.hybris.platform.jalo.media.Media.setData(Media.java:452)
      在de.hybris.platform.jalo.media.Media.setData(Media.java:399)
      在de.hybris.platform.hmc.media.MediaFileUploadEditorChip.setData(MediaFileUploadEditorChip.java:385)
      在de.hybris.platform.hmc.media.ModalMediaFileUploadChip.setFile(ModalMediaFileUploadChip.java:118)
      在de.hybris.platform.hmc.media.ModalMediaFileUploadChip.processEvents(ModalMediaFileUploadChip.java:222)
      在de.hybris.platform.hmc.webchips.DisplayState.dispatchEvents(DisplayState.java:635)
      在de.hybris.platform.hmc.webchips.DisplayState.extractEventsFromParameters(DisplayState.java:440)
      在de.hybris.platform.hmc.webchips.DisplayState.processEvents(DisplayState.java:351)
      在de.hybris.platform.hmc.webchips.MasterServlet.process(MasterServlet.java:192)
      在de.hybris.platform.hmc.webchips.MasterServlet.doGet(MasterServlet.java:88)
      在javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
      在javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:255)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ StatisticsGatewayFilter.doFilter(AbstractPlatformFilterChain.java:344)处
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.SecureMediaFilter.doFilter(SecureMediaFilter.java:111)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.DynamicCatalogVersionActivationFilter.doFilter(DynamicCatalogVersionActivationFilter.java:90)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.DataSourceSwitchingFilter.doFilter(DataSourceSwitchingFilter.java:70)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.SessionFilter.doFilter(SessionFilter.java:96)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.RedirectWhenSystemIsNotInitializedFilter.doFilter(RedirectWhenSystemIsNotInitializedFilter.java:101)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.DynamicTenantSwitchingFilter.doFilterInternal(DynamicTenantSwitchingFilter.java:85)
      在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.Log4JFilter.doFilter(Log4JFilter.java:44)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain $ InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
      在de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain.doFilterInternal(AbstractPlatformFilterChain.java:155)
      在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
      在org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
      在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      在org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
      在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      在de.hybris.platform.servicelayer.web.XSSFilter.processPatternsAndDoFilter(XSSFilter.java:342)
      在de.hybris.platform.servicelayer.web.XSSFilter.doFilter(XSSFilter.java:290)
      在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613)
      在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
      在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
      在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:611)
      在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)
      在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
      在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
      在java.lang.Thread.run(Thread.java:745)
  引起原因:de.hybris.platform.media.exceptions.MediaStoreException:com.amazonaws.services.s3.model.AmazonS3Exception:错误的请求(服务:Amazon S3;状态代码:400;错误代码:400错误的请求;请求ID:  dfggsdf),S3扩展请求ID:sdfg/sdfg + sdfg/sdfg
      在de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:149)
      在de.hybris.platform.jalo.media.MediaDataStoreCommand.execute(MediaDataStoreCommand.java:141)
      在de.hybris.platform.jalo.media.MediaManager.storeMedia(MediaManager.java:283)
      在de.hybris.platform.jalo.media.Media $ 1.execute(Media.java:443)
      在de.hybris.platform.tx.Transaction.execute(Transaction.java:1187)
      在de.hybris.platform.tx.Transaction.execute(Transaction.java:1152)
      在de.hybris.platform.jalo.media.Media.setData(Media.java:430)
      ...还有63个
  引起原因:com.amazonaws.services.s3.model.AmazonS3Exception:错误的请求(服务:Amazon S3;状态代码:400;错误代码:400错误的请求;请求ID:sdfgg),S3扩展请求ID:sdfggfds/sdfggf +  dfgfddfg/sdfggfd =
      在com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
      在com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
      在com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
      在com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
      在com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3736)
      在com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1027)
      在com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1005)
      在de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:137)
      ...更多69


  

(275.7 kB)
2条回答
xfwsx85
2020-09-19 14:46 .采纳回答

我的配置是错误的。创建了一个仅支持V4身份验证的存储区,更改为支持其工作的V2的存储区。

在此处找到此帖子:

S3 Frankfurt and Seoul仅支持V4身份验证API。 因此,使用V2 API的任何请求都将被拒绝400错误请求。

https://hortonworks.github.io/hdp-aws/ s3-trouble/index.html

一周热门 更多>