Skip to content
Extraits de code Groupes Projets
Valider 5f06111a rédigé par oussama aftys's avatar oussama aftys
Parcourir les fichiers

optimized the push product and hide product features

parent 763d44f9
Branches
1 requête de fusion!22optimized the push product and hide product features
Pipeline #14008 réussi avec les étapes
in 1 minute et 38 secondes
## [0.0.8-RELEASE]
### Added
- optimize the push product and hide product features
## [0.0.7-RELEASE]
### Added
- added export messages feature
......
......@@ -21,7 +21,6 @@ public class LiveServerConfig {
@PostConstruct
public void init() {
this.rtmp = "rtmp://rtmp.mydressin-server.com:1935/live";
System.out.println("LiveServerConfig rtmp: " + rtmp);
System.out.println("LiveServerConfig hls: " + hls);
System.out.println("LiveServerConfig stat: " + stat);
......
......@@ -12,8 +12,12 @@ import com.marketingconfort.mydressin.mydressinstreamservices.models.dtos.LivePr
import com.marketingconfort.mydressin.mydressinstreamservices.models.dtos.TimeStampProductDto;
import com.marketingconfort.mydressin.mydressinstreamservices.models.enums.MessageType;
import com.marketingconfort.mydressin.mydressinstreamservices.services.ILiveProductService;
import com.marketingconfort.starter.core.exceptions.FunctionalException;
import com.marketingconfort.starter.core.exceptions.TechnicalException;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
@AllArgsConstructor
@RestController
......@@ -39,11 +43,15 @@ public class LiveProductController {
@PostMapping("/add")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public LiveProductResponse addProductToLiveStream(
public ResponseEntity<LiveProductResponse> addProductToLiveStream(
@RequestBody LiveProductDto liveProductDto,
@RequestParam Long liveId,
@RequestHeader String requestAuthorization) {
return timeStampProductService.addProductToLiveStream(liveProductDto, liveId);
try {
return ResponseEntity.ok(timeStampProductService.addProductToLiveStream(liveProductDto, liveId));
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@DeleteMapping("/delete")
......@@ -57,35 +65,55 @@ public class LiveProductController {
@PostMapping("/present")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public void presentProduct(
public ResponseEntity<LiveProductDto> presentProduct(
@RequestParam Long liveId, @RequestParam Long liveProductId,
@RequestParam Long startTime, @RequestHeader String requestAuthorization) {
LiveProductDto liveProductDto = timeStampProductService.presentProduct(liveProductId, startTime);
simpleMessagingTemplate.convertAndSend("/topic/messages/" + liveId, liveProductDto);
try {
LiveProductDto liveProductDto = timeStampProductService.presentProduct(liveProductId, startTime);
simpleMessagingTemplate.convertAndSend("/topic/messages/" + liveId, liveProductDto);
return ResponseEntity.ok(liveProductDto);
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@PostMapping("/push")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public TimeStampProductDto pushProduct(
public ResponseEntity<TimeStampProductDto> pushProduct(
@RequestParam Long liveProductId, @RequestParam Long startTime,
@RequestHeader String requestAuthorization) {
return timeStampProductService.pushProduct(liveProductId, startTime);
try {
TimeStampProductDto timeStampProductDto = timeStampProductService.pushProduct(liveProductId, startTime);
return ResponseEntity.ok(timeStampProductDto);
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@PostMapping("/hide")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public TimeStampProductDto hideProduct(
public ResponseEntity<TimeStampProductDto> hideProduct(
@RequestParam Long liveProductId, @RequestParam Long endTime,
@RequestHeader String requestAuthorization) {
return timeStampProductService.hideProduct(liveProductId, endTime);
try {
TimeStampProductDto timeStampProductDto = timeStampProductService.hideProduct(liveProductId, endTime);
return ResponseEntity.ok(timeStampProductDto);
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@PostMapping("/add-time-stamp")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public TimeStampProductDto addTimeStampProduct(
public ResponseEntity<TimeStampProductDto> addTimeStampProduct(
@RequestParam Long liveProductId, @RequestParam Long startTime,
@RequestParam Long endTime, @RequestHeader String requestAuthorization) {
return timeStampProductService.addTimeStampProduct(liveProductId, startTime, endTime);
try {
TimeStampProductDto timeStampProductDto = timeStampProductService.addTimeStampProduct(liveProductId, startTime, endTime);
return ResponseEntity.ok(timeStampProductDto);
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@DeleteMapping("/delete-time-stamp")
......@@ -96,10 +124,15 @@ public class LiveProductController {
@PutMapping("/update-time-stamp")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public TimeStampProductDto updateTimeStampProduct(
public ResponseEntity<TimeStampProductDto> updateTimeStampProduct(
@RequestParam Long id, @RequestParam Long startTime,
@RequestParam Long endTime, @RequestHeader String requestAuthorization) {
return timeStampProductService.updateTimeStampProduct(id, startTime, endTime);
try {
TimeStampProductDto timeStampProductDto = timeStampProductService.updateTimeStampProduct(id, startTime, endTime);
return ResponseEntity.ok(timeStampProductDto);
} catch (FunctionalException | TechnicalException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
}
......@@ -4,11 +4,13 @@ import com.marketingconfort.mydressin.mydressinstreamservices.models.dtos.LivePr
import com.marketingconfort.mydressin.mydressinstreamservices.models.dtos.LiveProductResponse;
import com.marketingconfort.mydressin.mydressinstreamservices.models.entities.TimeStampProduct;
import com.marketingconfort.mydressin.mydressinstreamservices.models.dtos.TimeStampProductDto;
import com.marketingconfort.starter.core.exceptions.FunctionalException;
import com.marketingconfort.starter.core.exceptions.TechnicalException;
import java.util.List;
public interface ILiveProductService {
LiveProductResponse addProductToLiveStream(LiveProductDto liveProductDto, Long streamId);
LiveProductResponse addProductToLiveStream(LiveProductDto liveProductDto, Long streamId) throws FunctionalException, TechnicalException;
void removeLiveProduct(Long id);
......@@ -18,15 +20,15 @@ public interface ILiveProductService {
void deleteTimeStampProduct(long id);
LiveProductDto presentProduct(long liveProductId, long startTime);
LiveProductDto presentProduct(long liveProductId, long startTime) throws FunctionalException, TechnicalException;
TimeStampProductDto addTimeStampProduct(long liveProductId, long startTime, long endTime);
TimeStampProductDto addTimeStampProduct(long liveProductId, long startTime, long endTime) throws FunctionalException, TechnicalException;
TimeStampProductDto updateTimeStampProduct(long id, long startTime, long endTime);
TimeStampProductDto updateTimeStampProduct(long id, long startTime, long endTime) throws FunctionalException, TechnicalException;
List<TimeStampProduct> getTimeStampsProduct(long id);
TimeStampProductDto pushProduct(long liveProductId, long startTime);
TimeStampProductDto pushProduct(long liveProductId, long startTime) throws FunctionalException, TechnicalException;
TimeStampProductDto hideProduct(long liveProductId, long endTime);
TimeStampProductDto hideProduct(long liveProductId, long endTime) throws FunctionalException, TechnicalException;
}
......@@ -21,8 +21,15 @@ import com.marketingconfort.mydressin.mydressinstreamservices.models.repositorie
import com.marketingconfort.mydressin.mydressinstreamservices.services.ILiveProductService;
import com.marketingconfort.starter.core.services.MCRestTemplateService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.marketingconfort.starter.core.exceptions.FunctionalException;
import com.marketingconfort.starter.core.exceptions.TechnicalException;
import lombok.AllArgsConstructor;
@Service
@AllArgsConstructor
public class LiveProductService implements ILiveProductService {
......@@ -32,16 +39,24 @@ public class LiveProductService implements ILiveProductService {
final private LiveStreamRepository liveStreamRepository;
private final MCRestTemplateService mcRestTemplateService;
private final NameUrl nameUrl;
private final Logger logger = LoggerFactory.getLogger(LiveProductService.class);
@Override
public LiveProductResponse addProductToLiveStream(LiveProductDto liveProductDto, Long streamId) {
public LiveProductResponse addProductToLiveStream(LiveProductDto liveProductDto, Long streamId) throws FunctionalException, TechnicalException {
logger.info("Adding product to live stream with streamId: {}", streamId);
LiveStream liveStream = liveStreamRepository.findById(streamId)
.orElseThrow(() -> new RuntimeException("Live stream not found"));
.orElseThrow(() -> {
logger.error("Live stream not found with id: {}", streamId);
return new FunctionalException("Live stream not found");
});
LiveProduct liveProduct = liveProductDto.toEntity();
liveProduct.setLiveStream(liveStream);
liveProduct = liveProductRepository.save(liveProduct);
logger.info("Product added successfully to live stream. ProductId: {}, StreamId: {}", liveProduct.getId(), streamId);
return LiveProductResponse.builder()
.id(liveProduct.getId())
.title(liveProduct.getTitle())
......@@ -56,37 +71,55 @@ public class LiveProductService implements ILiveProductService {
@Override
public void removeLiveProduct(Long id) {
liveProductRepository.deleteById(id);
logger.info("Live product removed successfully. Id: {}", id);
}
@Override
public List<LiveProductResponse> getAllLiveProductsByStreamId(Long id) {
return liveProductRepository.findLiveProductsByStreamId(id);
List<LiveProductResponse> products = liveProductRepository.findLiveProductsByStreamId(id);
logger.info("Found {} live products for stream id: {}", products.size(), id);
return products;
}
@Override
public List<LiveProductResponse> getEnabledLiveProducts(Long id) {
return liveProductRepository.findEnabledLiveProducts(id);
List<LiveProductResponse> enabledProducts = liveProductRepository.findEnabledLiveProducts(id);
logger.info("Found {} enabled live products for stream id: {}", enabledProducts.size(), id);
return enabledProducts;
}
@Override
public void deleteTimeStampProduct(long id) {
timeStampProductRepository.deleteById(id);
logger.info("Timestamp product deleted successfully. Id: {}", id);
}
@Override
public LiveProductDto presentProduct(long liveProductId, long startTime) {
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(
() -> new RuntimeException("LiveProduct not found")
);
public LiveProductDto presentProduct(long liveProductId, long startTime) throws FunctionalException, TechnicalException {
logger.info("Presenting product with id: {}, at startTime: {}", liveProductId, startTime);
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(() -> {
logger.error("LiveProduct not found with id: {}", liveProductId);
return new FunctionalException("LiveProduct not found");
});
liveProduct.setStatus(ProductStatus.IN_PRESENTATION);
liveProduct.setPresented(true);
liveProduct = liveProductRepository.save(liveProduct);
long liveId=liveProduct.getLiveStream().getId();
logger.debug("LiveProduct status updated to IN_PRESENTATION. Id: {}", liveProductId);
long liveId = liveProduct.getLiveStream().getId();
TimeStampProduct timeStampProduct = timeStampProductRepository.save(new TimeStampProduct(startTime, liveProduct));
String url = nameUrl.getStockManagementService() + NameUri.STOCK + StockManagerServicePath.PRESENT_PRODUCT+"?liveId="+liveId+"&id="+liveProduct.getProductId()+"&presentedAt="+startTime ;
logger.debug("TimeStampProduct created with id: {}", timeStampProduct.getId());
String url = nameUrl.getStockManagementService() + NameUri.STOCK + StockManagerServicePath.PRESENT_PRODUCT +
"?liveId=" + liveId + "&id=" + liveProduct.getProductId() + "&presentedAt=" + startTime;
try {
logger.info("Calling stock management service: {}", url);
mcRestTemplateService.postForObject(url, null, Void.class);
return LiveProductDto.builder()
LiveProductDto result = LiveProductDto.builder()
.id(liveProductId)
.type(MessageType.ADDPRODUCT)
.productId(liveProduct.getProductId())
......@@ -103,108 +136,162 @@ public class LiveProductService implements ILiveProductService {
.build())
)
.build();
logger.info("Product presented successfully. Id: {}", liveProductId);
return result;
} catch (Exception e) {
throw new RuntimeException("Failed to present product");
logger.error("Failed to present product with id: {}. Error: {}", liveProductId, e.getMessage(), e);
throw new TechnicalException("Failed to present product: " + e.getMessage());
}
}
@Override
public TimeStampProductDto addTimeStampProduct
(long liveProductId, long startTime, long endTime
) {
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(
() -> new RuntimeException("LiveProduct not found")
);
liveProduct.setPresented(true);
liveProduct.setStatus(ProductStatus.PRESENTED);
liveProduct = liveProductRepository.save(liveProduct);
TimeStampProduct timeStampProduct = timeStampProductRepository.save(TimeStampProduct.builder()
.liveProduct(liveProduct)
.startTime(startTime)
.endTime(endTime)
.build());
return TimeStampProductDto.builder()
.id(timeStampProduct.getId())
.type(MessageType.ADDTIMESTAMP)
.startTime(timeStampProduct.getStartTime())
.endTime(timeStampProduct.getEndTime())
.liveProductId(liveProductId)
.build();
}
public TimeStampProductDto addTimeStampProduct(long liveProductId, long startTime, long endTime) throws FunctionalException, TechnicalException {
logger.info("Adding timestamp product. LiveProductId: {}, startTime: {}, endTime: {}", liveProductId, startTime, endTime);
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(() -> {
logger.error("LiveProduct not found with id: {}", liveProductId);
return new FunctionalException("LiveProduct not found");
});
liveProduct.setPresented(true);
liveProduct.setStatus(ProductStatus.PRESENTED);
liveProduct = liveProductRepository.save(liveProduct);
logger.debug("LiveProduct status updated to PRESENTED. Id: {}", liveProductId);
@Override
public TimeStampProductDto updateTimeStampProduct
(long id, long startTime, long endTime
) {
TimeStampProduct timeStampProduct = timeStampProductRepository.findById(id).orElseThrow(
() -> new RuntimeException("TimeStampProduct not found")
);
timeStampProduct.setStartTime(startTime);
timeStampProduct.setEndTime(endTime);
timeStampProduct = timeStampProductRepository.save(timeStampProduct);
return TimeStampProductDto.builder()
.type(MessageType.UPDATETIMESTAMP)
.id(timeStampProduct.getId())
.startTime(timeStampProduct.getStartTime())
.endTime(timeStampProduct.getEndTime())
.liveProductId(timeStampProduct.getLiveProduct().getId())
.build();
TimeStampProduct timeStampProduct = timeStampProductRepository.save(TimeStampProduct.builder()
.liveProduct(liveProduct)
.startTime(startTime)
.endTime(endTime)
.build());
logger.debug("TimeStampProduct created with id: {}", timeStampProduct.getId());
String url = nameUrl.getStockManagementService() + NameUri.STOCK + StockManagerServicePath.PRESENT_PRODUCT +
"?liveId=" + liveProduct.getLiveStream().getId() + "&id=" + liveProduct.getProductId() + "&presentedAt=" + startTime;
try {
logger.info("Calling stock management service: {}", url);
mcRestTemplateService.postForObject(url, null, Void.class);
} catch (Exception e) {
logger.error("Failed to call stock management service. LiveProductId: {}, Error: {}", liveProductId, e.getMessage(), e);
// Note: This exception is caught and logged but not rethrown
}
TimeStampProductDto result = TimeStampProductDto.builder()
.id(timeStampProduct.getId())
.type(MessageType.ADDTIMESTAMP)
.startTime(timeStampProduct.getStartTime())
.endTime(timeStampProduct.getEndTime())
.liveProductId(liveProductId)
.build();
logger.info("Timestamp product added successfully. Id: {}", timeStampProduct.getId());
return result;
}
@Override
public List<TimeStampProduct> getTimeStampsProduct
(long id
) {
return timeStampProductRepository.getTimeStampProductByLiveProductId(id);
}
@Override
public TimeStampProductDto updateTimeStampProduct(long id, long startTime, long endTime) throws FunctionalException, TechnicalException {
logger.info("Updating timestamp product. Id: {}, startTime: {}, endTime: {}", id, startTime, endTime);
TimeStampProduct timeStampProduct = timeStampProductRepository.findById(id).orElseThrow(() -> {
logger.error("TimeStampProduct not found with id: {}", id);
return new FunctionalException("TimeStampProduct not found");
});
timeStampProduct.setStartTime(startTime);
timeStampProduct.setEndTime(endTime);
timeStampProduct = timeStampProductRepository.save(timeStampProduct);
TimeStampProductDto result = TimeStampProductDto.builder()
.type(MessageType.UPDATETIMESTAMP)
.id(timeStampProduct.getId())
.startTime(timeStampProduct.getStartTime())
.endTime(timeStampProduct.getEndTime())
.liveProductId(timeStampProduct.getLiveProduct().getId())
.build();
logger.info("Timestamp product updated successfully. Id: {}", id);
return result;
}
@Override
public TimeStampProductDto pushProduct
(long liveProductId, long startTime
) {
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(
() -> new RuntimeException("LiveProduct not found")
);
liveProduct.setStatus(ProductStatus.IN_PRESENTATION);
liveProduct = liveProductRepository.save(liveProduct);
TimeStampProduct timeStampProduct = timeStampProductRepository.save(TimeStampProduct.builder()
.liveProduct(liveProduct)
.startTime(startTime)
.build());
return TimeStampProductDto.builder()
.type(MessageType.PUSHPRODUCT)
.id(timeStampProduct.getId())
.startTime(timeStampProduct.getStartTime())
.endTime(null)
.liveProductId(liveProductId)
.build();
}
@Override
public List<TimeStampProduct> getTimeStampsProduct(long id) {
logger.info("Fetching timestamp products for live product id: {}", id);
List<TimeStampProduct> timestamps = timeStampProductRepository.getTimeStampProductByLiveProductId(id);
logger.info("Found {} timestamp products for live product id: {}", timestamps.size(), id);
return timestamps;
}
@Override
public TimeStampProductDto hideProduct
(long liveProductId, long endTime
) {
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(
() -> new RuntimeException("LiveProduct not found")
);
liveProduct.setStatus(ProductStatus.PRESENTED);
liveProductRepository.save(liveProduct);
TimeStampProduct lastTimeStamp = timeStampProductRepository.getLastTimeStampProductByLiveProductId(liveProductId).orElseThrow(
() -> new RuntimeException("TimeStampProduct not found")
);
lastTimeStamp.setEndTime(endTime);
lastTimeStamp = timeStampProductRepository.save(lastTimeStamp);
return TimeStampProductDto.builder()
.type(MessageType.HIDEPRODUCT)
.id(lastTimeStamp.getId())
.startTime(lastTimeStamp.getStartTime())
.endTime(lastTimeStamp.getEndTime())
.liveProductId(liveProductId)
.build();
@Override
public TimeStampProductDto pushProduct(long liveProductId, long startTime) throws FunctionalException, TechnicalException {
logger.info("Pushing product. LiveProductId: {}, startTime: {}", liveProductId, startTime);
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(() -> {
logger.error("LiveProduct not found with id: {}", liveProductId);
return new FunctionalException("LiveProduct not found");
});
liveProduct.setStatus(ProductStatus.IN_PRESENTATION);
liveProduct = liveProductRepository.save(liveProduct);
logger.debug("LiveProduct status updated to IN_PRESENTATION. Id: {}", liveProductId);
long liveId = liveProduct.getLiveStream().getId();
String url = nameUrl.getStockManagementService() + NameUri.STOCK + StockManagerServicePath.PRESENT_PRODUCT +
"?liveId=" + liveId + "&id=" + liveProduct.getProductId() + "&presentedAt=" + startTime;
try {
logger.info("Calling stock management service: {}", url);
mcRestTemplateService.postForObject(url, null, Void.class);
} catch (Exception e) {
logger.error("Failed to call stock management service. LiveProductId: {}, Error: {}", liveProductId, e.getMessage(), e);
}
TimeStampProduct timeStampProduct = timeStampProductRepository.save(TimeStampProduct.builder()
.liveProduct(liveProduct)
.startTime(startTime)
.build());
TimeStampProductDto result = TimeStampProductDto.builder()
.type(MessageType.PUSHPRODUCT)
.id(timeStampProduct.getId())
.startTime(timeStampProduct.getStartTime())
.endTime(null)
.liveProductId(liveProductId)
.build();
logger.info("Product pushed successfully. LiveProductId: {}, TimeStampId: {}", liveProductId, timeStampProduct.getId());
return result;
}
@Override
public TimeStampProductDto hideProduct(long liveProductId, long endTime) throws FunctionalException, TechnicalException {
logger.info("Hiding product. LiveProductId: {}, endTime: {}", liveProductId, endTime);
LiveProduct liveProduct = liveProductRepository.findById(liveProductId).orElseThrow(() -> {
logger.error("LiveProduct not found with id: {}", liveProductId);
return new FunctionalException("LiveProduct not found");
});
liveProduct.setStatus(ProductStatus.PRESENTED);
liveProductRepository.save(liveProduct);
logger.debug("LiveProduct status updated to PRESENTED. Id: {}", liveProductId);
TimeStampProduct lastTimeStamp = timeStampProductRepository.getLastTimeStampProductByLiveProductId(liveProductId).orElseThrow(() -> {
logger.error("TimeStampProduct not found for liveProductId: {}", liveProductId);
return new FunctionalException("TimeStampProduct not found");
});
lastTimeStamp.setEndTime(endTime);
lastTimeStamp = timeStampProductRepository.save(lastTimeStamp);
TimeStampProductDto result = TimeStampProductDto.builder()
.type(MessageType.HIDEPRODUCT)
.id(lastTimeStamp.getId())
.startTime(lastTimeStamp.getStartTime())
.endTime(lastTimeStamp.getEndTime())
.liveProductId(liveProductId)
.build();
logger.info("Product hidden successfully. LiveProductId: {}, TimeStampId: {}", liveProductId, lastTimeStamp.getId());
return result;
}
}
live-server:
hls: https://hls.mydressin-server.com/hls
rtmp: rtmp://rtmp.mydressin-server.com/live
stat: https://hls.mydressin-server.com/stat
status: https://status.mydressin-server.com
cdn: https://bucket-rtmp.s3.eu-north-1.amazonaws.com/
hls: https://ant-media-ovh.mydressin-server.com
rtmp: rtmp://ant-media-ovh.mydressin-server.com/live
stat: https://ant-media-ovh.mydressin-server.com/stat
status: https://status-ovh.mydressin-server.com
cdn: https://mydressin-live-records.s3.eu-west-3.amazonaws.com/
spring:
datasource:
......
live-server:
hls: https://hls.mydressin-server.com/hls
rtmp: rtmp://rtmp.mydressin-server.com/live
stat: https://hls.mydressin-server.com/stat
status: https://status.mydressin-server.com
cdn: https://bucket-rtmp.s3.eu-north-1.amazonaws.com/
hls: https://ant-media-ovh.mydressin-server.com
rtmp: rtmp://ant-media-ovh.mydressin-server.com/live
stat: https://ant-media-ovh.mydressin-server.com/stat
status: https://status-ovh.mydressin-server.com
cdn: https://mydressin-live-records.s3.eu-west-3.amazonaws.com/
spring:
datasource:
......
......@@ -8,7 +8,7 @@ spring:
application:
name: mydressin-stream-service
profiles:
active: ${PROFILE:rec}
active: ${PROFILE:local}
servlet:
multipart:
max-file-size: 90000MB
......
0% ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter