我有这段代码,当文件放置在本地存储区中时,它可以成功地将文件从本地目录移动到GCP存储桶中,但是在移动到GCP之后,我需要将其删除。
>>> from cryptography.hazmat.primitives import hashes
>>> from cryptography.hazmat.primitives.asymmetric import padding
>>> message = b"A message I want to sign"
>>> signature = private_key.sign(
... message,
... padding.PSS(
... mgf=padding.MGF1(hashes.SHA256()),
... salt_length=padding.PSS.MAX_LENGTH
... ),
... hashes.SHA256()
... )
答案 0 :(得分:3)
您需要在@ServiceActivator(inputChannel = "new-file-channel")
上添加对adviceChain
的引用,ExpressionEvaluatingRequestHandlerAdvice
会执行onSuccessExpression
来删除该本地文件。
类似这样的东西:
@Bean
public Advice removeFileAdvice() {
ExpressionEvaluatingRequestHandlerAdvice advice = new ExpressionEvaluatingRequestHandlerAdvice();
advice.setOnSuccessExpressionString("payload.delete()");
advice.setSuccessChannel(myHandlerSuccessChannel());
return advice;
}
它将起作用,因为您的有效负载是java.io.File
,并且具有该delete()
方法。
比您在开始时说的要多:
@ServiceActivator(inputChannel = "new-file-channel", adviceChain="removeFileAdvice")