on 2018 Jan 25 9:24 PM
Hi experts
I'm currently evaluating the Amazon S3 bucket solution for our medias. Everytime I want to save a media I got this error and the media will not be persisted. The strange thing is that the upload to the bucket is working.
Any ideas what I'm doing wrong?
HMC error:

My configuration:
# Amazon S3 Bucket
# Put Spring bean id of the S3 strategy that keeps the logic responsible for communication between hybris and Amazon S3
media.folder.s3medias.storage.strategy=s3MediaStorageStrategy
media.folder.s3medias.url.strategy=s3MediaUrlStrategy
# Set that URL is valid for 5 minutes
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:
Bucket with my saved media:

Error:
Caused by: de.hybris.platform.media.exceptions.MediaStoreException: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: dfggsdf), S3 Extended Request ID: sdfg/sdfg+sdfg/sdfg
at de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:149)
Full error:
I think the warning can be ignored.
WARN [hybrisHTTP32] [AmazonS3Client] Attempting to re-send the request to testmspmediabucket.s3-external-1.amazonaws.com with AWS V4 authentication. To avoid this warning in the future, please use region-specific endpoint to access buckets located in regions that require V4 signing.
=======================================================================
Exception in MasterServlet
Time: Thu Jan 25 21:00:39 CET 2018
Query string: wid=MC0x479&MC0x478_file=%2FProjects%2Fmicrospot-b2c%2Fhybris%2Ftemp%2Fhybris%2Fhmc_upload_file1801757625646233598.tmp&MC0x478_filename=c74461ae2a9917a2482ac7b53f195b3c6e2fdd59e778c673256fb29d1b07f181.jpg&cancel=false&tempfilename=upload_MC0x478.tmp&MC0x478_!save=true
de.hybris.platform.jalo.JaloSystemException: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: fsgdfg), S3 Extended Request ID: sdfg/KHcvHkfnCuya7DDakAX+sdfg/sdfg=[HY--1]
at de.hybris.platform.jalo.media.Media.setData(Media.java:452)
at de.hybris.platform.jalo.media.Media.setData(Media.java:399)
at de.hybris.platform.hmc.media.MediaFileUploadEditorChip.setData(MediaFileUploadEditorChip.java:385)
at de.hybris.platform.hmc.media.ModalMediaFileUploadChip.setFile(ModalMediaFileUploadChip.java:118)
at de.hybris.platform.hmc.media.ModalMediaFileUploadChip.processEvents(ModalMediaFileUploadChip.java:222)
at de.hybris.platform.hmc.webchips.DisplayState.dispatchEvents(DisplayState.java:635)
at de.hybris.platform.hmc.webchips.DisplayState.extractEventsFromParameters(DisplayState.java:440)
at de.hybris.platform.hmc.webchips.DisplayState.processEvents(DisplayState.java:351)
at de.hybris.platform.hmc.webchips.MasterServlet.process(MasterServlet.java:192)
at de.hybris.platform.hmc.webchips.MasterServlet.doGet(MasterServlet.java:88)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:255)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$StatisticsGatewayFilter.doFilter(AbstractPlatformFilterChain.java:344)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.SecureMediaFilter.doFilter(SecureMediaFilter.java:111)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.DynamicCatalogVersionActivationFilter.doFilter(DynamicCatalogVersionActivationFilter.java:90)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.DataSourceSwitchingFilter.doFilter(DataSourceSwitchingFilter.java:70)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.SessionFilter.doFilter(SessionFilter.java:96)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.RedirectWhenSystemIsNotInitializedFilter.doFilter(RedirectWhenSystemIsNotInitializedFilter.java:101)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.DynamicTenantSwitchingFilter.doFilterInternal(DynamicTenantSwitchingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.Log4JFilter.doFilter(Log4JFilter.java:44)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:225)
at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain.doFilterInternal(AbstractPlatformFilterChain.java:155)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at de.hybris.platform.servicelayer.web.XSSFilter.processPatternsAndDoFilter(XSSFilter.java:342)
at de.hybris.platform.servicelayer.web.XSSFilter.doFilter(XSSFilter.java:290)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: de.hybris.platform.media.exceptions.MediaStoreException: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: dfggsdf), S3 Extended Request ID: sdfg/sdfg+sdfg/sdfg
at de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:149)
at de.hybris.platform.jalo.media.MediaDataStoreCommand.execute(MediaDataStoreCommand.java:141)
at de.hybris.platform.jalo.media.MediaManager.storeMedia(MediaManager.java:283)
at de.hybris.platform.jalo.media.Media$1.execute(Media.java:443)
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1187)
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1152)
at de.hybris.platform.jalo.media.Media.setData(Media.java:430)
... 63 more
Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: sdfgg), S3 Extended Request ID: sdfggfds/sdfggf+dfgfddfg/sdfggfd=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3736)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1027)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1005)
at de.hybris.platform.amazon.media.storage.S3MediaStorageStrategy.store(S3MediaStorageStrategy.java:137)
... 69 more
Request clarification before answering.
My configuration was wrong.. created an bucket which only supports V4 auth after changing to an bucket region which supports V2 it's working.
Found this post here:
S3 Frankfurt and Seoul only support the V4 authentication API. Consequently, any requests using the V2 API will be rejected with 400 Bad Request.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.